Code Duplication    Length = 16-18 lines in 2 locations

tcms/tests/__init__.py 2 locations

@@ 40-57 (lines=18) @@
37
        raise TypeError('perm should be an instance of either str or Permission')
38
39
40
def remove_perm_from_user(user, perm):
41
    """Remove a permission from an user"""
42
43
    if isinstance(perm, str):
44
        try:
45
            app_label, codename = perm.split('.')
46
        except ValueError:
47
            raise ValueError('%s is not valid. Should be in format app_label.perm_codename')
48
        else:
49
            if not app_label or not codename:
50
                raise ValueError('Invalid app_label or codename')
51
            get_permission = Permission.objects.get
52
            user.user_permissions.remove(
53
                get_permission(content_type__app_label=app_label, codename=codename))
54
    elif isinstance(perm, Permission):
55
        user.user_permissions.remove(perm)
56
    else:
57
        raise TypeError('perm should be an instance of either str or Permission')
58
59
60
def create_request_user(username=None, password=None):
@@ 22-37 (lines=16) @@
19
from tcms.tests.factories import BuildFactory
20
21
22
def user_should_have_perm(user, perm):
23
    if isinstance(perm, str):
24
        try:
25
            app_label, codename = perm.split('.')
26
        except ValueError:
27
            raise ValueError('%s is not valid. Should be in format app_label.perm_codename')
28
        else:
29
            if not app_label or not codename:
30
                raise ValueError('Invalid app_label or codename')
31
            get_permission = Permission.objects.get
32
            user.user_permissions.add(
33
                get_permission(content_type__app_label=app_label, codename=codename))
34
    elif isinstance(perm, Permission):
35
        user.user_permissions.add(perm)
36
    else:
37
        raise TypeError('perm should be an instance of either str or Permission')
38
39
40
def remove_perm_from_user(user, perm):