示例#1
0
 def test_generates_repr_string(self):
     # given
     user = User(email='*****@*****.**')
     user.id = 123
     #when
     r = repr(user)
     # then
     self.assertEqual('User(\'[email protected]\', id=123)', r)
示例#2
0
 def test_lazy_overrides_non_lazy_users(self):
     # given
     user = User('user')
     user2 = User('user2')
     # when
     result = Task.from_dict({'users': [user]}, lazy={'users': [user2]})
     # then
     self.assertIsInstance(result, Task)
     self.assertEqual([user2], list(result.users))
示例#3
0
 def test_generates_str_string(self):
     # given
     user = User(email='*****@*****.**')
     user.id = 123
     #when
     r = str(user)
     # then
     fmt = 'User(\'[email protected]\', user id=123, id=[{}])'
     expected = fmt.format(id(user))
     self.assertEqual(expected, r)
示例#4
0
    def test_constructor_sets_is_admin(self):
        # when
        user = User('*****@*****.**', 'hashed_password', False)
        # then
        self.assertFalse(user.is_admin)

        # when
        user = User('*****@*****.**', 'hashed_password', True)
        # then
        self.assertTrue(user.is_admin)
示例#5
0
 def test_to_dict_returns_correct_values(self):
     # when
     user = User('*****@*****.**', '12345')
     # then
     self.assertEqual(
         {
             'email': '*****@*****.**',
             'hashed_password': '******',
             'is_admin': False,
             'id': None,
             'tasks': []
         }, user.to_dict())
示例#6
0
 def test_to_dict_all_fields_returns_correct_values(self):
     # when
     user = User('*****@*****.**', '12345')
     # then
     self.assertEqual(
         {
             'email': '*****@*****.**',
             'hashed_password': '******',
             'is_admin': False,
             'id': None,
             'tasks': []
         },
         user.to_dict({
             user.FIELD_ID, user.FIELD_EMAIL, user.FIELD_HASHED_PASSWORD,
             user.FIELD_IS_ADMIN, user.FIELD_TASKS
         }))
示例#7
0
 def test_users_non_empty_yields_same(self):
     # given
     user = User('user')
     # when
     result = Task.from_dict({'users': [user]})
     # then
     self.assertIsInstance(result, Task)
     self.assertEqual([user], list(result.users))
示例#8
0
 def test_any_lazy_overrides_all_non_lazy_properties(self):
     # given
     task = Task('task')
     # when
     result = User.from_dict({'tasks': [task]}, lazy={'x': 123})
     # then
     self.assertIsInstance(result, User)
     self.assertEqual([], list(result.tasks))
示例#9
0
 def test_tasks_non_empty_yields_same(self):
     # given
     task = Task('task')
     # when
     result = User.from_dict({'tasks': [task]})
     # then
     self.assertIsInstance(result, User)
     self.assertEqual([task], list(result.tasks))
示例#10
0
文件: layer.py 项目: izrik/tudor
 def create_user(self,
                 email,
                 hashed_password=None,
                 is_admin=False,
                 lazy=None):
     return User(email=email,
                 hashed_password=hashed_password,
                 is_admin=is_admin,
                 lazy=lazy)
示例#11
0
 def test_lazy_overrides_non_lazy_tasks(self):
     # given
     task = Task('task')
     task2 = Task('task2')
     # when
     result = User.from_dict({'tasks': [task]}, lazy={'tasks': [task2]})
     # then
     self.assertIsInstance(result, User)
     self.assertEqual([task2], list(result.tasks))
示例#12
0
 def test_empty_yields_empty_dbuser(self):
     # when
     result = User.from_dict({})
     # then
     self.assertIsInstance(result, User)
     self.assertIsNone(result.id)
     self.assertIsNone(result.email)
     self.assertIsNone(result.hashed_password)
     self.assertFalse(result.is_admin)
     self.assertEqual([], list(result.tasks))
示例#13
0
 def test_unauthorized_nonadmin_cannot_edit_public_task(self):
     # given
     task = Task('task', is_public=True)
     user = User('*****@*****.**')
     self.pl.add(task)
     self.pl.add(user)
     self.pl.commit()
     # when
     result = TaskUserOps.user_can_edit_task(task, user)
     # then
     self.assertFalse(result)
示例#14
0
 def test_unauthorized_admin_can_edit_private_task(self):
     # given
     task = Task('task')
     user = User('*****@*****.**', None, True)
     self.pl.add(task)
     self.pl.add(user)
     self.pl.commit()
     # when
     result = TaskUserOps.user_can_edit_task(task, user)
     # then
     self.assertTrue(result)
示例#15
0
 def test_unauthorized_nonadmin_cannot_view_private_task(self):
     # given
     task = Task('task')
     user = User('*****@*****.**')
     self.pl.add(task)
     self.pl.add(user)
     self.pl.commit()
     # when
     result = TaskUserOps.user_can_view_task(task, user)
     # then
     self.assertFalse(result)
示例#16
0
 def test_unauthorized_nonadmin_cannot_access_task(self):
     # given
     task = Task('task')
     user = User('*****@*****.**')
     self.pl.add(task)
     self.pl.add(user)
     self.pl.commit()
     # when
     result = TaskUserOps.is_user_authorized_or_admin(task, user)
     # then
     self.assertFalse(result)
示例#17
0
 def test_authorized_admin_can_access_task(self):
     # given
     task = Task('task')
     user = User('*****@*****.**', None, True)
     self.pl.add(task)
     self.pl.add(user)
     task.users.append(user)
     self.pl.commit()
     # when
     result = TaskUserOps.is_user_authorized_or_admin(task, user)
     # then
     self.assertTrue(result)
示例#18
0
 def test_authorized_admin_can_edit_public_task(self):
     # given
     task = Task('task', is_public=True)
     user = User('*****@*****.**', None, True)
     self.pl.add(task)
     self.pl.add(user)
     task.users.append(user)
     self.pl.commit()
     # when
     result = TaskUserOps.user_can_edit_task(task, user)
     # then
     self.assertTrue(result)
示例#19
0
 def test_email_none_is_ignored(self):
     # when
     result = User.from_dict({'email': None})
     # then
     self.assertIsInstance(result, User)
     self.assertIsNone(result.email)
示例#20
0
 def test_tasks_empty_yields_empty(self):
     # when
     result = User.from_dict({'tasks': []})
     # then
     self.assertIsInstance(result, User)
     self.assertEqual([], list(result.tasks))
示例#21
0
 def test_valid_is_admin_gets_set(self):
     # when
     result = User.from_dict({'is_admin': True})
     # then
     self.assertIsInstance(result, User)
     self.assertTrue(result.is_admin)
示例#22
0
 def test_valid_hashed_password_gets_set(self):
     # when
     result = User.from_dict({'hashed_password': '******'})
     # then
     self.assertIsInstance(result, User)
     self.assertEqual('abc', result.hashed_password)
示例#23
0
 def test_is_admin_none_becomes_none(self):
     # when
     result = User.from_dict({'is_admin': None})
     # then
     self.assertIsInstance(result, User)
     self.assertIsNone(result.is_admin)
示例#24
0
 def test_hashed_password_none_becomes_none(self):
     # when
     result = User.from_dict({'hashed_password': None})
     # then
     self.assertIsInstance(result, User)
     self.assertIsNone(result.hashed_password)
示例#25
0
 def setUp(self):
     self.task = Task('task')
     self.user = User('user')
示例#26
0
 def test_constructor_default_id_is_none(self):
     # when
     user = User('*****@*****.**', 'hashed_password')
     # then
     self.assertIsNone(user.id)
示例#27
0
 def test_valid_id_gets_set(self):
     # when
     result = User.from_dict({'id': 123})
     # then
     self.assertIsInstance(result, User)
     self.assertEqual(123, result.id)
示例#28
0
 def test_id_none_is_ignored(self):
     # when
     result = User.from_dict({'id': None})
     # then
     self.assertIsInstance(result, User)
     self.assertIsNone(result.id)
示例#29
0
 def test_valid_email_gets_set(self):
     # when
     result = User.from_dict({'email': '*****@*****.**'})
     # then
     self.assertIsInstance(result, User)
     self.assertEqual('*****@*****.**', result.email)
示例#30
0
 def test_to_dict_field_id_returns_id(self):
     # when
     user = User('*****@*****.**', '12345')
     # then
     self.assertEqual({'id': None}, user.to_dict({user.FIELD_ID}))