Skip to content

Commit 2aa9916

Browse files
test(firestore): cases for add() method
1 parent 7e901f8 commit 2aa9916

File tree

1 file changed

+98
-24
lines changed

1 file changed

+98
-24
lines changed

tests/test_firestore.py

Lines changed: 98 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88
class TestFirestoreAdmin:
9-
movies = {
9+
movies1 = {
1010
'name': 'Iron Man',
1111
'lead': {'name': 'Robert Downey Jr.'},
1212
'released': False,
@@ -16,29 +16,53 @@ class TestFirestoreAdmin:
1616
'cast': ['Jon Favreau', 'Gwyneth Paltrow', 'Jeff Bridges', b'J.A.R.V.I.S', 'Terrence Howard']
1717
}
1818

19+
movies2 = {
20+
'name': 'Thor',
21+
'lead': {'name': 'Chris Hemsworth'},
22+
'released': False,
23+
'year': 2011,
24+
'rating': 7.0,
25+
'cast': ['Tom Hiddleston', 'Natalie Portman', 'Anthony Hopkins', 'Jeremy Renner', 'Stellan Skarsgård', 'Idris Elba', 'Kat Dennings']
26+
}
27+
28+
auto_doc_id = None
29+
1930
def test_manual_doc_set(self, ds_admin):
20-
assert ds_admin.collection('Marvels').document('Movies').set(self.__class__.movies) is None
31+
assert ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').document('001').set(self.__class__.movies1) is None
32+
33+
def test_auto_doc_add(self, ds_admin):
34+
doc_id = ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').add(self.__class__.movies2)
35+
assert doc_id
36+
37+
self.__class__.auto_doc_id = doc_id
2138

2239
def test_manual_doc_get(self, ds_admin):
23-
assert ds_admin.collection('Marvels').document('Movies').get() == self.__class__.movies
40+
assert ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').document('001').get() == self.__class__.movies1
41+
assert ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').document(self.__class__.auto_doc_id).get() == self.__class__.movies2
2442

2543
def test_collection_get(self, ds_admin):
26-
assert ds_admin.collection('Marvels').get() == [{'Movies': self.__class__.movies}]
44+
assert ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').get() == [{'001': self.__class__.movies1}, {self.__class__.auto_doc_id: self.__class__.movies2}]
2745

2846
def test_manual_doc_update(self, ds_admin):
2947
update_data = {'released': True}
30-
assert ds_admin.collection('Marvels').document('Movies').update(update_data) is None
31-
assert ds_admin.collection('Marvels').document('Movies').get(field_paths=['released']) == update_data
48+
49+
assert ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').document('001').update(update_data) is None
50+
assert ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').document('001').get(field_paths=['released']) == update_data
51+
52+
assert ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').document(self.__class__.auto_doc_id).update(update_data) is None
53+
assert ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').document(self.__class__.auto_doc_id).get(field_paths=['released']) == update_data
3254

3355
def test_manual_doc_get_filtered(self, ds_admin):
34-
assert ds_admin.collection('Marvels').document('Movies').get(field_paths=['name']) == {'name': self.__class__.movies['name']}
56+
assert ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').document('001').get(field_paths=['name']) == {'name': self.__class__.movies1['name']}
57+
assert ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').document(self.__class__.auto_doc_id).get(field_paths=['name']) == {'name': self.__class__.movies2['name']}
3558

3659
def test_manual_doc_delete(self, ds_admin):
37-
assert ds_admin.collection('Marvels').document('Movies').delete() is None
60+
assert ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').document('001').delete() is None
61+
assert ds_admin.collection('Marvels').document('Movies').collection('PhaseOne').document(self.__class__.auto_doc_id).delete() is None
3862

3963

4064
class TestFirestoreAuth:
41-
movies = {
65+
movies1 = {
4266
'name': 'Dr. Strange',
4367
'lead': {'name': 'Benedict Cumberbatch'},
4468
'released': False,
@@ -47,7 +71,19 @@ class TestFirestoreAuth:
4771
'prequel': None,
4872
'cast': ['Tilda Swinton', 'Rachel McAdams', 'Mads Mikkelsen', 'Chiwetel Ejiofor', 'Benedict Wong']
4973
}
74+
75+
movies2 = {
76+
'name': 'Black Panther',
77+
'lead': {'name': 'Chadwick Boseman'},
78+
'released': False,
79+
'year': 2018,
80+
'rating': 7.3,
81+
'prequel': None,
82+
'cast': ['Michael B. Jordan', 'Sebastian Stan', 'Letitia Wright', 'Martin Freeman', 'Winston Duke']
83+
}
84+
5085
user = None
86+
auto_doc_id = None
5187

5288
def test_create_test_user(self, auth):
5389
user = auth.sign_in_anonymous()
@@ -56,31 +92,54 @@ def test_create_test_user(self, auth):
5692
assert user.get('idToken')
5793

5894
def test_manual_doc_set(self, ds):
59-
assert ds.collection('Marvels').document('Movies').set(self.__class__.movies, token=self.__class__.user.get('idToken')) is None
95+
assert ds.collection('Marvels').document('Movies').collection('PhaseThree').document('014').set(self.__class__.movies1, token=self.__class__.user.get('idToken')) is None
96+
97+
def test_auto_doc_add(self, ds):
98+
doc_id = ds.collection('Marvels').document('Movies').collection('PhaseThree').add(self.__class__.movies2, token=self.__class__.user.get('idToken'))
99+
assert doc_id
100+
101+
self.__class__.auto_doc_id = doc_id
60102

61103
def test_manual_doc_get(self, ds):
62-
assert ds.collection('Marvels').document('Movies').get(token=self.__class__.user.get('idToken')) == self.__class__.movies
104+
assert ds.collection('Marvels').document('Movies').collection('PhaseThree').document('014').get(token=self.__class__.user.get('idToken')) == self.__class__.movies1
105+
assert ds.collection('Marvels').document('Movies').collection('PhaseThree').document(self.__class__.auto_doc_id).get(token=self.__class__.user.get('idToken')) == self.__class__.movies2
63106

64107
def test_collection_get(self, ds):
65-
assert ds.collection('Marvels').get(token=self.__class__.user.get('idToken')) == [{'Movies': self.__class__.movies}]
108+
assert ds.collection('Marvels').document('Movies').collection('PhaseThree').get(token=self.__class__.user.get('idToken')) == [{'014': self.__class__.movies1}, {self.__class__.auto_doc_id: self.__class__.movies2}]
66109

67110
def test_manual_doc_get_filtered(self, ds):
68-
assert ds.collection('Marvels').document('Movies').get(field_paths=['name'], token=self.__class__.user.get('idToken')) == {'name': self.__class__.movies['name']}
111+
assert ds.collection('Marvels').document('Movies').collection('PhaseThree').document('014').get(field_paths=['name'], token=self.__class__.user.get('idToken')) == {'name': self.__class__.movies1['name']}
112+
assert ds.collection('Marvels').document('Movies').collection('PhaseThree').document(self.__class__.auto_doc_id).get(field_paths=['name'], token=self.__class__.user.get('idToken')) == {'name': self.__class__.movies2['name']}
69113

70114
def test_manual_doc_update(self, ds):
71115
update_data = {'released': True}
72-
assert ds.collection('Marvels').document('Movies').update(update_data, token=self.__class__.user.get('idToken')) is None
73-
assert ds.collection('Marvels').document('Movies').get(field_paths=['released'], token=self.__class__.user.get('idToken')) == update_data
116+
117+
assert ds.collection('Marvels').document('Movies').collection('PhaseThree').document('014').update(update_data, token=self.__class__.user.get('idToken')) is None
118+
assert ds.collection('Marvels').document('Movies').collection('PhaseThree').document('014').get(field_paths=['released'], token=self.__class__.user.get('idToken')) == update_data
119+
120+
assert ds.collection('Marvels').document('Movies').collection('PhaseThree').document(self.__class__.auto_doc_id).update(update_data, token=self.__class__.user.get('idToken')) is None
121+
assert ds.collection('Marvels').document('Movies').collection('PhaseThree').document(self.__class__.auto_doc_id).get(field_paths=['released'], token=self.__class__.user.get('idToken')) == update_data
74122

75123
def test_manual_doc_delete(self, ds):
76-
assert ds.collection('Marvels').document('Movies').delete(self.__class__.user.get('idToken')) is None
124+
assert ds.collection('Marvels').document('Movies').collection('PhaseThree').document('014').delete(self.__class__.user.get('idToken')) is None
125+
assert ds.collection('Marvels').document('Movies').collection('PhaseThree').document(self.__class__.auto_doc_id).delete(self.__class__.user.get('idToken')) is None
77126

78127
def test_delete_test_user(self, auth):
79128
assert auth.delete_user_account(self.__class__.user.get('idToken'))
80129

81130

82131
class TestFirestore:
83-
series = {
132+
series1 = {
133+
'name': 'Loki',
134+
'lead': {'name': 'Tom Hiddleston'},
135+
'released': False,
136+
'year': 2021,
137+
'rating': 8.2,
138+
'prequel': None,
139+
'cast': ['Sophia Di Martino', 'Owen Wilson', 'Jonathan Majors', 'Wunmi Mosaku', 'Gugu Mbatha-Raw']
140+
}
141+
142+
series2 = {
84143
'name': 'Moon Knight',
85144
'lead': {'name': 'Oscar Issac'},
86145
'released': False,
@@ -90,22 +149,37 @@ class TestFirestore:
90149
'cast': ['Ethan Hawke', 'May Calamawy', 'F. Murray Abraham']
91150
}
92151

152+
auto_doc_id = None
153+
93154
def test_manual_doc_set(self, ds):
94-
assert ds.collection('Marvels').document('Series').set(self.__class__.series) is None
155+
assert ds.collection('Marvels').document('Series').collection('PhaseFour').document('003').set(self.__class__.series1) is None
156+
157+
def test_auto_doc_add(self, ds):
158+
doc_id = ds.collection('Marvels').document('Series').collection('PhaseFour').add(self.__class__.series2)
159+
assert doc_id
160+
161+
self.__class__.auto_doc_id = doc_id
95162

96163
def test_manual_doc_get(self, ds):
97-
assert ds.collection('Marvels').document('Series').get() == self.__class__.series
164+
assert ds.collection('Marvels').document('Series').collection('PhaseFour').document('003').get() == self.__class__.series1
165+
assert ds.collection('Marvels').document('Series').collection('PhaseFour').document(self.__class__.auto_doc_id).get() == self.__class__.series2
98166

99167
def test_collection_get(self, ds):
100-
assert ds.collection('Marvels').get() == [{'Series': self.__class__.series}]
168+
assert ds.collection('Marvels').document('Series').collection('PhaseFour').get() == [{'003': self.__class__.series1}, {self.__class__.auto_doc_id: self.__class__.series2}]
101169

102170
def test_manual_doc_get_filtered(self, ds):
103-
assert ds.collection('Marvels').document('Series').get(field_paths=['name']) == {'name': self.__class__.series['name']}
171+
assert ds.collection('Marvels').document('Series').collection('PhaseFour').document('003').get(field_paths=['name']) == {'name': self.__class__.series1['name']}
172+
assert ds.collection('Marvels').document('Series').collection('PhaseFour').document(self.__class__.auto_doc_id).get(field_paths=['name']) == {'name': self.__class__.series2['name']}
104173

105174
def test_manual_doc_update(self, ds):
106175
update_data = {'released': True}
107-
assert ds.collection('Marvels').document('Series').update(update_data) is None
108-
assert ds.collection('Marvels').document('Series').get(field_paths=['released']) == update_data
176+
177+
assert ds.collection('Marvels').document('Series').collection('PhaseFour').document('003').update(update_data) is None
178+
assert ds.collection('Marvels').document('Series').collection('PhaseFour').document('003').get(field_paths=['released']) == update_data
179+
180+
assert ds.collection('Marvels').document('Series').collection('PhaseFour').document(self.__class__.auto_doc_id).update(update_data) is None
181+
assert ds.collection('Marvels').document('Series').collection('PhaseFour').document(self.__class__.auto_doc_id).get(field_paths=['released']) == update_data
109182

110183
def test_manual_doc_delete(self, ds):
111-
assert ds.collection('Marvels').document('Series').delete() is None
184+
assert ds.collection('Marvels').document('Series').collection('PhaseFour').document('003').delete() is None
185+
assert ds.collection('Marvels').document('Series').collection('PhaseFour').document(self.__class__.auto_doc_id).delete() is None

0 commit comments

Comments
 (0)