/
test_database.py
140 lines (104 loc) · 4.94 KB
/
test_database.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
import unittest
from test_utils import prepare_db_for_tests, test_depute
from database import Depute, Extra, create_user, User, DuplicatedUser
class TestDatabase(unittest.TestCase):
def setUp(self):
prepare_db_for_tests()
self.depute = Depute(test_depute)
self.depute = self.depute.save()
def tearDown(self):
Depute.collection.remove()
Extra.collection.remove()
def test_for_memopol(self):
self.assertEqual(self.depute.for_memopol, u"EricCiotti")
def test_an_id(self):
self.assertEqual(self.depute.an_id, '330240')
def test_get_extra(self):
self.assertTrue(isinstance(self.depute.extra, Extra))
def test_extra_saved(self):
self.depute.extra
self.assertEqual(Extra.collection.count(), 1)
def test_extra_save_depute_id(self):
self.assertEqual(self.depute.extra.depute_id, self.depute._id)
def test_extra_the_same(self):
extra = self.depute.extra
self.assertEqual(extra, self.depute.extra)
def test_extra_get_depute(self):
self.assertEqual(self.depute, self.depute.extra.depute)
class TestUSer(unittest.TestCase):
def setUp(self):
prepare_db_for_tests()
def test_create_user(self):
self.assertTrue(isinstance(create_user("foo", "bar"), User))
def test_create_user_save(self):
create_user("foo", "bar")
self.assertEqual(User.collection.find().count(), 1)
def test_user_as_login(self):
user = create_user(username="foo", password="bar")
self.assertEqual(user.username, "foo")
def test_login_non_empty(self):
self.assertRaises(ValueError, create_user, "", "pouet")
def test_password_non_empty(self):
self.assertRaises(ValueError, create_user, "pouet", "")
def test_dont_store_password_in_clear(self):
user = create_user(username="foo", password="bar")
self.assertNotEqual(user.password, "bar")
def test_password_is_correct(self):
user = create_user(username="foo", password="bar")
self.assertTrue(user.test_password("bar"))
def test_password_is_not_correct(self):
user = create_user(username="foo", password="bar")
self.assertFalse(user.test_password("bad password"))
def test_duplicated_users(self):
create_user(username="foo", password="bar")
self.assertRaises(DuplicatedUser, create_user, username="foo", password="bar")
class TestUserFollow(unittest.TestCase):
def setUp(self):
prepare_db_for_tests()
self.user = create_user("pouet", "pouet")
self.depute = Depute(test_depute).save()
def test_user_follow_list(self):
self.assertEqual([], self.user.follow_list)
def test_user_follow_raise_value_error(self):
"""should only work with a Depute args"""
self.assertRaises(ValueError, self.user.follow, None)
def test_user_follow_depute(self):
self.user.follow(self.depute)
self.assertEqual(len(self.user.follow_list), 1)
self.assertEqual(self.user.follow_list[0], self.depute._id)
def test_user_follow_list_is_save(self):
self.user.follow(self.depute)
in_db_user = User.collection.find_one({"_id": self.user._id})
self.assertEqual(len(in_db_user.follow_list), 1)
self.assertEqual(in_db_user.follow_list[0], self.depute._id)
def test_user_unfollow_raise_value_error(self):
self.assertRaises(ValueError, self.user.unfollow, None)
def test_user_unfollow_depute(self):
self.user.follow(self.depute)
self.assertEqual(len(self.user.follow_list), 1)
self.assertEqual(self.user.follow_list[0], self.depute._id)
self.user.unfollow(self.depute)
self.assertEqual(len(self.user.follow_list), 0)
self.assertTrue(self.depute._id not in self.user.follow_list)
def test_user_unfollow_list_is_save(self):
self.user.follow(self.depute)
in_db_user = User.collection.find_one({"_id": self.user._id})
self.assertEqual(len(in_db_user.follow_list), 1)
self.assertEqual(in_db_user.follow_list[0], self.depute._id)
self.user.unfollow(self.depute)
in_db_user = User.collection.find_one({"_id": self.user._id})
self.assertEqual(len(in_db_user.follow_list), 0)
self.assertTrue(self.depute._id not in in_db_user.follow_list)
def test_get_followed_deputies(self):
self.assertEqual(self.user.get_followed_deputies(), [])
self.user.follow(self.depute)
self.assertEqual(self.user.get_followed_deputies()[0], self.depute)
def test_is_following(self):
self.assertFalse(self.user.is_following(self.depute))
self.user.follow(self.depute)
self.assertTrue(self.user.is_following(self.depute))
def test_deputy_empty_followers(self):
self.assertEqual(self.depute.extra.followers, [])
def test_deputy_one_follower(self):
self.user.follow(self.depute)
self.assertEqual(self.depute.extra.followers, [self.user])