|
408 | 408 | }
|
409 | 409 | }
|
410 | 410 | }"""
|
| 411 | +SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER = """{ |
| 412 | + individuals(filters: {enrollmentDate: "%s"}) { |
| 413 | + entities { |
| 414 | + mk |
| 415 | + enrollments { |
| 416 | + start |
| 417 | + end |
| 418 | + } |
| 419 | + } |
| 420 | + } |
| 421 | +}""" |
411 | 422 | SH_INDIVIDUALS_LAST_UPDATED_FILTER = """{
|
412 | 423 | individuals(filters: {lastUpdated: "%s"}) {
|
413 | 424 | entities {
|
@@ -2225,6 +2236,129 @@ def test_filter_source_non_exist_registry(self):
|
2225 | 2236 | individuals = executed['data']['individuals']['entities']
|
2226 | 2237 | self.assertEqual(len(individuals), 0)
|
2227 | 2238 |
|
| 2239 | + def test_filter_enrollment_date(self): |
| 2240 | + """Check whether it returns the individual searched when using an enrollment date filter""" |
| 2241 | + |
| 2242 | + # Individual is enrolled 1999-2000 |
| 2243 | + org = Organization.objects.create(name='Bitergia') |
| 2244 | + indv = Individual.objects.create(mk='17ab00ed3825ec2f50483e33c88df223264182ba') |
| 2245 | + Enrollment.objects.create(individual=indv, organization=org, |
| 2246 | + start=datetime.datetime(1999, 1, 1, 0, 0, 0, |
| 2247 | + tzinfo=dateutil.tz.tzutc()), |
| 2248 | + end=datetime.datetime(2000, 1, 1, 0, 0, 0, |
| 2249 | + tzinfo=dateutil.tz.tzutc())) |
| 2250 | + client = graphene.test.Client(schema) |
| 2251 | + |
| 2252 | + # Test enrollment before date '<' |
| 2253 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '<1998-01-01T00:00:00', |
| 2254 | + context_value=self.context_value) |
| 2255 | + individuals = executed['data']['individuals']['entities'] |
| 2256 | + self.assertEqual(len(individuals), 0) |
| 2257 | + |
| 2258 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '<1999-01-01T00:00:00', |
| 2259 | + context_value=self.context_value) |
| 2260 | + individuals = executed['data']['individuals']['entities'] |
| 2261 | + self.assertEqual(len(individuals), 0) |
| 2262 | + |
| 2263 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '<2000-01-01T00:00:00', |
| 2264 | + context_value=self.context_value) |
| 2265 | + individuals = executed['data']['individuals']['entities'] |
| 2266 | + self.assertEqual(len(individuals), 1) |
| 2267 | + |
| 2268 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '<2001-01-01T00:00:00', |
| 2269 | + context_value=self.context_value) |
| 2270 | + individuals = executed['data']['individuals']['entities'] |
| 2271 | + self.assertEqual(len(individuals), 1) |
| 2272 | + |
| 2273 | + # Test enrollment before or on date '<=' |
| 2274 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '<=1998-01-01T00:00:00', |
| 2275 | + context_value=self.context_value) |
| 2276 | + individuals = executed['data']['individuals']['entities'] |
| 2277 | + self.assertEqual(len(individuals), 0) |
| 2278 | + |
| 2279 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '<=1999-01-01T00:00:00', |
| 2280 | + context_value=self.context_value) |
| 2281 | + individuals = executed['data']['individuals']['entities'] |
| 2282 | + self.assertEqual(len(individuals), 1) |
| 2283 | + |
| 2284 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '<=2000-01-01T00:00:00', |
| 2285 | + context_value=self.context_value) |
| 2286 | + individuals = executed['data']['individuals']['entities'] |
| 2287 | + self.assertEqual(len(individuals), 1) |
| 2288 | + |
| 2289 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '<=2001-01-01T00:00:00', |
| 2290 | + context_value=self.context_value) |
| 2291 | + individuals = executed['data']['individuals']['entities'] |
| 2292 | + self.assertEqual(len(individuals), 1) |
| 2293 | + |
| 2294 | + # Test enrollment after date '>' |
| 2295 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '>1998-01-01T00:00:00', |
| 2296 | + context_value=self.context_value) |
| 2297 | + individuals = executed['data']['individuals']['entities'] |
| 2298 | + self.assertEqual(len(individuals), 1) |
| 2299 | + |
| 2300 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '>1999-01-01T00:00:00', |
| 2301 | + context_value=self.context_value) |
| 2302 | + individuals = executed['data']['individuals']['entities'] |
| 2303 | + self.assertEqual(len(individuals), 1) |
| 2304 | + |
| 2305 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '>2000-01-01T00:00:00', |
| 2306 | + context_value=self.context_value) |
| 2307 | + individuals = executed['data']['individuals']['entities'] |
| 2308 | + self.assertEqual(len(individuals), 0) |
| 2309 | + |
| 2310 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '>2001-01-01T00:00:00', |
| 2311 | + context_value=self.context_value) |
| 2312 | + individuals = executed['data']['individuals']['entities'] |
| 2313 | + self.assertEqual(len(individuals), 0) |
| 2314 | + |
| 2315 | + # Test enrollment after or on date '>=' |
| 2316 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '>=1998-01-01T00:00:00', |
| 2317 | + context_value=self.context_value) |
| 2318 | + individuals = executed['data']['individuals']['entities'] |
| 2319 | + self.assertEqual(len(individuals), 1) |
| 2320 | + |
| 2321 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '>=1999-01-01T00:00:00', |
| 2322 | + context_value=self.context_value) |
| 2323 | + individuals = executed['data']['individuals']['entities'] |
| 2324 | + self.assertEqual(len(individuals), 1) |
| 2325 | + |
| 2326 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '>=2000-01-01T00:00:00', |
| 2327 | + context_value=self.context_value) |
| 2328 | + individuals = executed['data']['individuals']['entities'] |
| 2329 | + self.assertEqual(len(individuals), 1) |
| 2330 | + |
| 2331 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '>=2001-01-01T00:00:00', |
| 2332 | + context_value=self.context_value) |
| 2333 | + individuals = executed['data']['individuals']['entities'] |
| 2334 | + self.assertEqual(len(individuals), 0) |
| 2335 | + |
| 2336 | + # Test enrollment range '..' |
| 2337 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '1997-01-01T00:00:00..1998-01-01T00:00:00', |
| 2338 | + context_value=self.context_value) |
| 2339 | + individuals = executed['data']['individuals']['entities'] |
| 2340 | + self.assertEqual(len(individuals), 0) |
| 2341 | + |
| 2342 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '1998-01-01T00:00:00..1999-01-01T00:00:00', |
| 2343 | + context_value=self.context_value) |
| 2344 | + individuals = executed['data']['individuals']['entities'] |
| 2345 | + self.assertEqual(len(individuals), 1) |
| 2346 | + |
| 2347 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '1999-01-01T00:00:00..2000-01-01T00:00:00', |
| 2348 | + context_value=self.context_value) |
| 2349 | + individuals = executed['data']['individuals']['entities'] |
| 2350 | + self.assertEqual(len(individuals), 1) |
| 2351 | + |
| 2352 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '2000-01-01T00:00:00..2001-01-01T00:00:00', |
| 2353 | + context_value=self.context_value) |
| 2354 | + individuals = executed['data']['individuals']['entities'] |
| 2355 | + self.assertEqual(len(individuals), 1) |
| 2356 | + |
| 2357 | + executed = client.execute(SH_INDIVIDUALS_ENROLLMENT_DATE_FILTER % '2001-01-01T00:00:00..2002-01-01T00:00:00', |
| 2358 | + context_value=self.context_value) |
| 2359 | + individuals = executed['data']['individuals']['entities'] |
| 2360 | + self.assertEqual(len(individuals), 0) |
| 2361 | + |
2228 | 2362 | def test_filter_last_updated(self):
|
2229 | 2363 | """Check whether it returns the uuids searched when using a date filter"""
|
2230 | 2364 |
|
|
0 commit comments