Ejemplo n.º 1
0
class TestUserGroupAccess(object):
    @pytest.mark.parametrize('access, permission', [
        ('rw------', Permission(metadata='readwrite', data='none')),
        ('rw------', Permission(metadata='readwrite', data=None)),
    ])
    def test_from_dict(self, access, permission):
        data = {'id': 'abc', 'access': access}
        uga = UserGroupAccess.from_dict(data)
        assert permission.to_symbol() == access
        assert uga.to_json() == {"id": "abc", "access": permission.to_symbol()}

    @pytest.mark.parametrize('access', ['ab-------', 'readwrite', 123, None])
    def test_from_dict_invalid_access(self, access):
        data = {'id': 'abc', 'access': access}
        uga = UserGroupAccess.from_dict(data)
        assert uga.permission == Permission(None, None)
        assert uga.to_json() == {"id": "abc", "access": "--------"}

    def test_inequality(self):
        uga1 = UserGroupAccess(uid='abc',
                               permission=Permission(metadata='readwrite',
                                                     data='readwrite'))
        uga2 = UserGroupAccess(uid='abc',
                               permission=Permission(metadata='readonly',
                                                     data='readwrite'))
        uga3 = UserGroupAccess(uid='cde',
                               permission=Permission(metadata='readwrite',
                                                     data='readwrite'))

        assert uga1 != uga2
        assert uga1 != uga3
Ejemplo n.º 2
0
 def test_print(self):
     assert str(Permission(metadata=None, data=None)) == '[metadata:none]'
     assert str(
         Permission(metadata=None,
                    data='readwrite')) == '[metadata:none] [data:readwrite]'
     assert repr(Permission(metadata=None,
                            data='readwrite')) == 'None readwrite'
Ejemplo n.º 3
0
 def test_inequality(self):
     uga1 = UserGroupAccessMerge(uid='abc',
                                 permission=Permission(metadata='readwrite',
                                                       data='readwrite'))
     uga2 = UserGroupAccessMerge(uid='cde',
                                 permission=Permission(metadata='readwrite',
                                                       data='readwrite'))
     assert uga1 != uga2
Ejemplo n.º 4
0
    def test_all_equal(self):
        p1 = Permission(metadata='readwrite', data='readonly')
        p2 = Permission.from_public_args([['readwrite', 'readonly']])
        p3 = Permission.from_symbol('rwr-----')
        p4 = Permission.from_group_args(['aFilter', 'readwrite', 'readonly'])

        assert p1 == p2
        assert p3 == p4
        assert p1 == p4

        assert p1.to_symbol() == p2.to_symbol()
        assert p3.to_symbol() == p4.to_symbol()
        assert p1.to_symbol() == p4.to_symbol()
Ejemplo n.º 5
0
 def test_from_dict_invalid_access(self, access):
     data = {'id': 'abc', 'access': access}
     uga = UserGroupAccess.from_dict(data)
     assert uga.permission == Permission(None, None)
     assert uga.to_json() == {"id": "abc", "access": "--------"}
Ejemplo n.º 6
0
 def test_permission_from_group_args(self, groups, metadata, data):
     p = Permission.from_group_args(groups)
     assert p.metadata == metadata
     assert p.data == data
Ejemplo n.º 7
0
 def test_permission_from_symbol(self, symbol, metadata, data):
     p = Permission.from_symbol(symbol)
     assert p.metadata == metadata
     assert p.data == data
Ejemplo n.º 8
0
 def test_permission_from_public_args(self, public_args, metadata, data,
                                      symbol):
     p = Permission.from_public_args(public_args)
     assert p.metadata == metadata
     assert p.data == data
     assert p.to_symbol() == symbol
Ejemplo n.º 9
0
 def test_permission_init(self):
     p = Permission(metadata='rw', data='r-')
     assert p.metadata == 'rw'
     assert p.data == 'r-'
Ejemplo n.º 10
0
 def test_permission_from_public_args_inherited(self):
     """If not specified, assume it's inherited from server definition"""
     assert Permission.from_public_args(None) == PUBLIC_ACCESS_INHERITED
Ejemplo n.º 11
0
class TestMerge(object):
    @pytest.mark.parametrize(
        'server_uga, local_uga, expected',
        [
            [  # user group accesses is retained
                {
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata='readwrite',
                                                          data=None)),
                    UserGroupAccess(uid='def',
                                    permission=Permission(metadata='readwrite',
                                                          data=None))
                },
                {
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata='readwrite',
                                                          data=None)),
                    UserGroupAccess(uid='def',
                                    permission=Permission(metadata='readwrite',
                                                          data=None))
                },
                {
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata='readwrite',
                                                          data=None)),
                    UserGroupAccess(uid='def',
                                    permission=Permission(metadata='readwrite',
                                                          data=None))
                }
            ],
            [  # user group accesses have higher priority when supplied to what is already on the server
                {
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata='readwrite',
                                                          data=None)),
                    UserGroupAccess(uid='def',
                                    permission=Permission(metadata='readwrite',
                                                          data='readonly'))
                },
                {
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata='readonly',
                                                          data=None)),
                },
                {
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata='readonly',
                                                          data=None)),
                    UserGroupAccess(uid='def',
                                    permission=Permission(metadata='readwrite',
                                                          data='readonly'))
                }
            ],
            [  # user group accesses are not overwritten with NONE
                {
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata='readwrite',
                                                          data=None)),
                    UserGroupAccess(uid='def',
                                    permission=Permission(metadata='readwrite',
                                                          data=None))
                },
                {
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata='readwrite',
                                                          data=None)),
                    UserGroupAccess(uid='def',
                                    permission=Permission(metadata=None,
                                                          data=None))
                },
                {
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata='readwrite',
                                                          data=None)),
                }
            ],
            [  # no user groups present on server
                {},
                {
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata='readwrite',
                                                          data=None)),
                    UserGroupAccess(uid='def',
                                    permission=Permission(metadata='readwrite',
                                                          data=None))
                },
                {
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata='readwrite',
                                                          data=None)),
                    UserGroupAccess(uid='def',
                                    permission=Permission(metadata='readwrite',
                                                          data=None))
                }
            ],
            [  # no user groups present on server nor specified
                {}, {}, {}
            ],
            [  # ordering not important
                {},
                {
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata=None,
                                                          data='readwrite')),
                    UserGroupAccess(uid='def',
                                    permission=Permission(metadata='readwrite',
                                                          data=None))
                },
                {
                    UserGroupAccess(uid='def',
                                    permission=Permission(metadata='readwrite',
                                                          data=None)),
                    UserGroupAccess(uid='abc',
                                    permission=Permission(metadata=None,
                                                          data='readwrite'))
                }
            ]
        ])
    def test_merge(self, server_uga, local_uga, expected):
        output = merge(server_uga, local_uga)
        assert output == expected
Ejemplo n.º 12
0
 def test_permission_not_equal(self):
     assert Permission(metadata='readwrite', data=None) != Permission(
         metadata=None, data=None)