Enable duplicate code detection for Python code
1 | # -*- coding: utf-8 -*- |
||
2 | # pylint: disable=too-many-ancestors |
||
3 | |||
4 | from http import HTTPStatus |
||
5 | |||
6 | from django.urls import reverse |
||
7 | from django.contrib.auth.models import Permission |
||
8 | from django.utils.translation import ugettext_lazy as _ |
||
9 | |||
10 | from tcms.tests.factories import TagFactory |
||
11 | from tcms.tests.factories import UserFactory |
||
12 | from tcms.tests import remove_perm_from_user |
||
13 | from tcms.tests import BasePlanCase |
||
14 | from tcms.utils.permissions import initiate_user_with_default_setups |
||
15 | |||
16 | |||
17 | View Code Duplication | class TestViewPlanTags(BasePlanCase): |
|
0 ignored issues
–
show
Duplication
introduced
by
Loading history...
|
|||
18 | @classmethod |
||
19 | def setUpTestData(cls): |
||
20 | super().setUpTestData() |
||
21 | |||
22 | initiate_user_with_default_setups(cls.tester) |
||
23 | for _i in range(3): |
||
24 | cls.plan.add_tag(TagFactory()) |
||
25 | |||
26 | cls.unauthorized = UserFactory() |
||
27 | cls.unauthorized.set_password('password') |
||
28 | cls.unauthorized.save() |
||
29 | |||
30 | cls.unauthorized.user_permissions.add(*Permission.objects.all()) |
||
31 | remove_perm_from_user(cls.unauthorized, 'testplans.add_testplantag') |
||
32 | remove_perm_from_user(cls.unauthorized, 'testplans.delete_testplantag') |
||
33 | |||
34 | def test_view_tags_with_permissions(self): |
||
35 | url = reverse('ajax-tags') |
||
36 | response = self.client.get(url, {'plan': self.plan.pk}, follow=True) |
||
37 | self.assertEqual(HTTPStatus.OK, response.status_code) |
||
38 | |||
39 | # assert tag actions are shown |
||
40 | self.assertContains(response, _('Add Tag')) |
||
41 | self.assertContains(response, |
||
42 | 'class="remove js-remove-tag" title="remove tag">%s</a>' % |
||
43 | _('Remove')) |
||
44 | |||
45 | def test_view_tags_without_permissions(self): |
||
46 | self.client.logout() |
||
47 | |||
48 | self.client.login( # nosec:B106:hardcoded_password_funcarg |
||
49 | username=self.unauthorized.username, |
||
50 | password='password') |
||
51 | |||
52 | url = reverse('ajax-tags') |
||
53 | response = self.client.get(url, {'plan': self.plan.pk}, follow=True) |
||
54 | self.assertEqual(HTTPStatus.OK, response.status_code) |
||
55 | |||
56 | # assert tag actions are shown |
||
57 | self.assertNotContains(response, 'Add Tag') |
||
58 | self.assertContains(response, '<span class="disabled grey">%s</span>' % _('Remove')) |
||
59 |