summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjelle van der Waa <jelle@vdwaa.nl>2018-11-23 20:50:28 +0100
committerGitHub <noreply@github.com>2018-11-23 20:50:28 +0100
commitc51bfe07f4350e24a7014382d9c7a3d21f60ff9a (patch)
tree323b90b3803914ce8a32f136b4aa72bffd49763f
parent2832455cb330ac08f9436cb44225ce44054b78cf (diff)
parentcdce8a4f88dda6352f432b593efd9290acd5ade6 (diff)
downloadarchweb-release_2018-11-23.tar.gz
archweb-release_2018-11-23.zip
Merge pull request #161 from jelly/adopt_testsrelease_2018-11-23
Adopt tests
-rw-r--r--devel/tests/test_devel.py11
-rw-r--r--packages/tests.py66
2 files changed, 75 insertions, 2 deletions
diff --git a/devel/tests/test_devel.py b/devel/tests/test_devel.py
index c6a67cb5..c8a28c1a 100644
--- a/devel/tests/test_devel.py
+++ b/devel/tests/test_devel.py
@@ -1,5 +1,6 @@
from django.test import TransactionTestCase
-from django.contrib.auth.models import User
+from django.contrib.auth.models import User, Group
+from devel.models import UserProfile
class DevelView(TransactionTestCase):
@@ -11,13 +12,21 @@ class DevelView(TransactionTestCase):
self.user = User.objects.create_superuser('admin',
'admin@archlinux.org',
password)
+ for name in ['Developers', 'Retired Developers']:
+ Group.objects.create(name=name)
+ self.user.groups.add(Group.objects.get(name='Developers'))
+ self.user.save()
+ self.profile = UserProfile.objects.create(user=self.user,
+ public_email="{}@awesome.com".format(self.user.username))
self.client.post('/login/', {
'username': self.user.username,
'password': password
})
def tearDown(self):
+ self.profile.delete()
self.user.delete()
+ Group.objects.all().delete()
def test_clock(self):
response = self.client.get('/devel/clock/')
diff --git a/packages/tests.py b/packages/tests.py
index 43f3d39b..373f85de 100644
--- a/packages/tests.py
+++ b/packages/tests.py
@@ -1,7 +1,12 @@
import unittest
from django.core import mail
-from django.test import TestCase
+from django.test import TestCase, TransactionTestCase
+from django.contrib.auth.models import User
+
+from main.models import Package, Repo
+from packages.models import PackageRelation
+from devel.models import UserProfile
from .alpm import AlpmAPI
@@ -291,4 +296,63 @@ class FlagPackage(TestCase):
self.assertEqual(len(mail.outbox), 0)
+class AdoptOrphanPackage(TransactionTestCase):
+ fixtures = ['main/fixtures/arches.json', 'main/fixtures/repos.json',
+ 'main/fixtures/package.json']
+
+ def setUp(self):
+ password = 'test'
+ self.user = User.objects.create_superuser('admin',
+ 'admin@archlinux.org',
+ password)
+ self.profile = UserProfile.objects.create(user=self.user,
+ public_email="{}@awesome.com".format(self.user.username))
+ self.profile.allowed_repos.add(Repo.objects.get(name='Core'))
+ self.profile.save()
+ self.client.post('/login/', {
+ 'username': self.user.username,
+ 'password': password
+ })
+
+ def tearDown(self):
+ self.profile.delete()
+ self.user.delete()
+ PackageRelation.objects.all().delete()
+
+ def request(self, pkgid, adopt=True):
+ data = {
+ 'pkgid': pkgid,
+ }
+ if adopt:
+ data['adopt'] = 'adopt'
+ else:
+ data['disown'] = 'disown'
+ return self.client.post('/packages/update/', data, follow=True)
+
+ def test_adopt_package(self):
+ pkg = Package.objects.first()
+ response = self.request(pkg.id)
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(len(PackageRelation.objects.all()), 1)
+
+ response = self.request(pkg.id, False)
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(len(PackageRelation.objects.all()), 0)
+
+ def test_no_permissions(self):
+ self.profile.allowed_repos = []
+ self.profile.save()
+ pkg = Package.objects.first()
+
+ response = self.request(pkg.id)
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(len(PackageRelation.objects.all()), 0)
+
+ def test_wrong_request(self):
+ pkg = Package.objects.first()
+ response = self.client.post('/packages/update/', {'pkgid': pkg.id, }, follow=True)
+ self.assertEqual(response.status_code, 200)
+ self.assertIn('Are you trying to adopt or disown', response.content)
+
+
# vim: set ts=4 sw=4 et: