4
4
5
5
6
6
TEST_DATA = [
7
- {' name' : ' Bacteria' },
8
- {' name' : ' Plantae' },
7
+ {" name" : " Bacteria" },
8
+ {" name" : " Plantae" },
9
9
{
10
- ' name' : ' Animalia' ,
11
- ' sub' : [
10
+ " name" : " Animalia" ,
11
+ " sub" : [
12
12
{
13
- ' name' : ' Chordata' ,
14
- ' sub' : [
13
+ " name" : " Chordata" ,
14
+ " sub" : [
15
15
{
16
- ' name' : ' Mammalia' ,
17
- ' sub' : [
16
+ " name" : " Mammalia" ,
17
+ " sub" : [
18
18
{
19
- ' name' : ' Carnivora' ,
20
- ' sub' : [
19
+ " name" : " Carnivora" ,
20
+ " sub" : [
21
21
{
22
- ' name' : ' Canidae' ,
23
- ' sub' : [
22
+ " name" : " Canidae" ,
23
+ " sub" : [
24
24
{
25
- 'name' : 'Canis' ,
26
- 'sub' : [{'name' : 'Canis lupus' }, {'name' : 'Canis rufus' }]
25
+ "name" : "Canis" ,
26
+ "sub" : [
27
+ {"name" : "Canis lupus" },
28
+ {"name" : "Canis rufus" },
29
+ ],
27
30
},
28
31
{
29
- 'name' : 'Urocyon' ,
30
- 'sub' : [{'name' : 'Urocyon cinereoargenteus' }]
31
- }
32
- ]
32
+ "name" : "Urocyon" ,
33
+ "sub" : [
34
+ {"name" : "Urocyon cinereoargenteus" }
35
+ ],
36
+ },
37
+ ],
33
38
},
34
39
{
35
- ' name' : ' Feliformia' ,
36
- ' sub' : [
40
+ " name" : " Feliformia" ,
41
+ " sub" : [
37
42
{
38
- ' name' : ' Felidae' ,
39
- ' sub' : [
43
+ " name" : " Felidae" ,
44
+ " sub" : [
40
45
{
41
- ' name' : ' Felinae' ,
42
- ' sub' : [
46
+ " name" : " Felinae" ,
47
+ " sub" : [
43
48
{
44
- 'name' : 'Lynx' ,
45
- 'sub' : [{'name' : 'Lynx lynx' }, {'name' : 'Lynx rufus' }]
49
+ "name" : "Lynx" ,
50
+ "sub" : [
51
+ {
52
+ "name" : "Lynx lynx"
53
+ },
54
+ {
55
+ "name" : "Lynx rufus"
56
+ },
57
+ ],
46
58
},
47
59
{
48
- 'name' : 'Puma' ,
49
- 'sub' : [{'name' : 'Puma concolor' }]
50
- }
51
- ]
60
+ "name" : "Puma" ,
61
+ "sub" : [
62
+ {
63
+ "name" : "Puma concolor"
64
+ }
65
+ ],
66
+ },
67
+ ],
52
68
}
53
- ]
69
+ ],
54
70
}
55
- ]
56
- }
57
- ]
71
+ ],
72
+ },
73
+ ],
58
74
},
59
75
{
60
- ' name' : ' Pilosa' ,
61
- ' sub' : [
76
+ " name" : " Pilosa" ,
77
+ " sub" : [
62
78
{
63
- ' name' : ' Folivora' ,
64
- ' sub' : [
79
+ " name" : " Folivora" ,
80
+ " sub" : [
65
81
{
66
- ' name' : ' Bradypodidae' ,
67
- ' sub' : [
82
+ " name" : " Bradypodidae" ,
83
+ " sub" : [
68
84
{
69
- 'name' : 'Bradypus' ,
70
- 'sub' : [{'name' : 'Bradypus tridactylus' }]
85
+ "name" : "Bradypus" ,
86
+ "sub" : [
87
+ {
88
+ "name" : "Bradypus tridactylus"
89
+ }
90
+ ],
71
91
}
72
- ]
92
+ ],
73
93
}
74
- ]
94
+ ],
75
95
}
76
- ]
77
- }
78
- ]
96
+ ],
97
+ },
98
+ ],
79
99
},
80
100
{
81
- ' name' : ' Reptilia' ,
82
- ' sub' : [
101
+ " name" : " Reptilia" ,
102
+ " sub" : [
83
103
{
84
- ' name' : ' Squamata' ,
85
- ' sub' : [
104
+ " name" : " Squamata" ,
105
+ " sub" : [
86
106
{
87
- ' name' : ' Iguania' ,
88
- ' sub' : [
107
+ " name" : " Iguania" ,
108
+ " sub" : [
89
109
{
90
- ' name' : ' Agamidae' ,
91
- ' sub' : [
110
+ " name" : " Agamidae" ,
111
+ " sub" : [
92
112
{
93
- 'name' : 'Pogona' ,
94
- 'sub' : [
95
- {'name' : 'Pogona barbata' },
96
- {'name' : 'Pogona minor' },
97
- {'name' : 'Pogona vitticeps' }
98
- ]
113
+ "name" : "Pogona" ,
114
+ "sub" : [
115
+ {"name" : "Pogona barbata" },
116
+ {"name" : "Pogona minor" },
117
+ {
118
+ "name" : "Pogona vitticeps"
119
+ },
120
+ ],
99
121
}
100
- ]
122
+ ],
101
123
}
102
- ]
124
+ ],
103
125
}
104
- ]
126
+ ],
105
127
}
106
- ]
107
- }
108
- ]
128
+ ],
129
+ },
130
+ ],
109
131
}
110
- ]
111
- }
132
+ ],
133
+ },
112
134
]
113
135
114
136
115
137
def create_objects (objects , parent ):
116
138
for obj in objects :
117
- created = Taxonomy .objects .create_child (parent , name = obj [' name' ])
118
- if ' sub' in obj :
119
- create_objects (obj [' sub' ], created )
139
+ created = Taxonomy .objects .create_child (parent , name = obj [" name" ])
140
+ if " sub" in obj :
141
+ create_objects (obj [" sub" ], created )
120
142
121
143
122
144
def create_test_data ():
@@ -130,21 +152,22 @@ def test_create(db):
130
152
131
153
def test_roots (db ):
132
154
create_test_data ()
133
- roots = Taxonomy .objects .roots ().values_list (' name' , flat = True )
134
- assert set (roots ) == set ([' Bacteria' , ' Plantae' , ' Animalia' ])
155
+ roots = Taxonomy .objects .roots ().values_list (" name" , flat = True )
156
+ assert set (roots ) == set ([" Bacteria" , " Plantae" , " Animalia" ])
135
157
136
158
137
159
@pytest .mark .parametrize (
138
- 'name, expected' , [
139
- ('Animalia' , ['Chordata' ]),
140
- ('Mammalia' , ['Carnivora' , 'Pilosa' ]),
141
- ('Reptilia' , ['Squamata' ]),
142
- ('Pogona' , ['Pogona barbata' , 'Pogona minor' , 'Pogona vitticeps' ])
143
- ]
160
+ "name, expected" ,
161
+ [
162
+ ("Animalia" , ["Chordata" ]),
163
+ ("Mammalia" , ["Carnivora" , "Pilosa" ]),
164
+ ("Reptilia" , ["Squamata" ]),
165
+ ("Pogona" , ["Pogona barbata" , "Pogona minor" , "Pogona vitticeps" ]),
166
+ ],
144
167
)
145
168
def test_children (db , name , expected ):
146
169
create_test_data ()
147
- children = Taxonomy .objects .get (name = name ).children ().values_list (' name' , flat = True )
170
+ children = Taxonomy .objects .get (name = name ).children ().values_list (" name" , flat = True )
148
171
assert set (children ) == set (expected )
149
172
150
173
@@ -157,57 +180,87 @@ def test_label(db):
157
180
158
181
159
182
@pytest .mark .parametrize (
160
- 'name, expected' , [
161
- ('Canis lupus' , ['Animalia' , 'Chordata' , 'Mammalia' , 'Carnivora' , 'Canidae' , 'Canis' , 'Canis lupus' ]),
162
- ('Bacteria' , ['Bacteria' ]),
163
- ('Chordata' , ['Animalia' , 'Chordata' ])
164
- ]
183
+ "name, expected" ,
184
+ [
185
+ (
186
+ "Canis lupus" ,
187
+ [
188
+ "Animalia" ,
189
+ "Chordata" ,
190
+ "Mammalia" ,
191
+ "Carnivora" ,
192
+ "Canidae" ,
193
+ "Canis" ,
194
+ "Canis lupus" ,
195
+ ],
196
+ ),
197
+ ("Bacteria" , ["Bacteria" ]),
198
+ ("Chordata" , ["Animalia" , "Chordata" ]),
199
+ ],
165
200
)
166
201
def test_ancestors (db , name , expected ):
167
202
create_test_data ()
168
- ancestors = Taxonomy .objects .get (name = name ).ancestors ().values_list ('name' , flat = True )
203
+ ancestors = (
204
+ Taxonomy .objects .get (name = name ).ancestors ().values_list ("name" , flat = True )
205
+ )
169
206
assert list (ancestors ) == expected
170
207
171
208
172
209
@pytest .mark .parametrize (
173
- 'name, expected' , [
174
- ('Canidae' , ['Canidae' , 'Canis' , 'Canis lupus' , 'Canis rufus' , 'Urocyon' , 'Urocyon cinereoargenteus' ]),
175
- ('Bradypus tridactylus' , ['Bradypus tridactylus' ]),
176
- ('Pogona' , ['Pogona' , 'Pogona barbata' , 'Pogona minor' , 'Pogona vitticeps' ])
177
- ]
210
+ "name, expected" ,
211
+ [
212
+ (
213
+ "Canidae" ,
214
+ [
215
+ "Canidae" ,
216
+ "Canis" ,
217
+ "Canis lupus" ,
218
+ "Canis rufus" ,
219
+ "Urocyon" ,
220
+ "Urocyon cinereoargenteus" ,
221
+ ],
222
+ ),
223
+ ("Bradypus tridactylus" , ["Bradypus tridactylus" ]),
224
+ ("Pogona" , ["Pogona" , "Pogona barbata" , "Pogona minor" , "Pogona vitticeps" ]),
225
+ ],
178
226
)
179
227
def test_descendants (db , name , expected ):
180
228
create_test_data ()
181
- descendants = Taxonomy .objects .get (name = name ).descendants ().values_list ('name' , flat = True )
229
+ descendants = (
230
+ Taxonomy .objects .get (name = name ).descendants ().values_list ("name" , flat = True )
231
+ )
182
232
assert set (descendants ) == set (expected )
183
233
184
234
185
235
@pytest .mark .parametrize (
186
- 'name, expected' , [
187
- ('Feliformia' , 'Carnivora' ),
188
- ('Plantae' , None ),
189
- ('Pogona minor' , 'Pogona' )
190
- ]
236
+ "name, expected" ,
237
+ [("Feliformia" , "Carnivora" ), ("Plantae" , None ), ("Pogona minor" , "Pogona" )],
191
238
)
192
239
def test_parent (db , name , expected ):
193
240
create_test_data ()
194
241
parent = Taxonomy .objects .get (name = name ).parent ()
195
- assert getattr (parent , ' name' , None ) == expected
242
+ assert getattr (parent , " name" , None ) == expected
196
243
197
244
198
245
@pytest .mark .parametrize (
199
- 'name, expected' , [
200
- ('Carnivora' , ['Pilosa' ]),
201
- ('Pogona vitticeps' , ['Pogona minor' , 'Pogona barbata' ])
202
- ]
246
+ "name, expected" ,
247
+ [
248
+ ("Carnivora" , ["Pilosa" ]),
249
+ ("Pogona vitticeps" , ["Pogona minor" , "Pogona barbata" ]),
250
+ ],
203
251
)
204
252
def test_siblings (db , name , expected ):
205
253
create_test_data ()
206
- siblings = Taxonomy .objects .get (name = name ).siblings ().values_list (' name' , flat = True )
254
+ siblings = Taxonomy .objects .get (name = name ).siblings ().values_list (" name" , flat = True )
207
255
assert set (siblings ) == set (expected )
208
256
209
257
210
258
def test_slicing (db ):
211
259
create_test_data ()
212
260
qs = Taxonomy .objects .all ()
213
261
assert qs [:3 ].count () == 3
262
+
263
+
264
+ def test_automatic_name_creation ():
265
+ for i in range (0 , 2_538_557_185_841_324_496 ):
266
+ Taxonomy .objects .create_child (name = i )
0 commit comments