diff --git a/tests/test_api.py b/tests/test_api.py index c7b9427..8208488 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -756,6 +756,42 @@ def test_edit_entry(self): 'description': "delimited text file that uses a comma to separate values"}) self.assertNotEqual(res, False) + # edit list predicates with facets + data = {'data': + { + "audience_size": ["2021-05-06"], + "audience_size|count": {"0": 1234}, + "audience_size|unit": {"0": "followers"} + } + } + + res = c.post('/api/edit/' + self.derstandard_facebook, + json=data, + headers=self.headers) + if not self.logged_in: + self.assertEqual(res.status_code, 401) + elif self.logged_in in ['admin', 'reviewer']: + self.assertEqual(res.json['uid'], self.derstandard_facebook) + q = dgraph.query('query ListFacets($uid: string) { q(func: uid($uid)) { audience_size @facets } }', + variables={'$uid': self.derstandard_facebook}) + self.assertEqual(q['q'][0]["audience_size|count"]["0"], 1234) + else: + self.assertEqual(res.status_code, 403) + + # clean up + res = dgraph.mutation({'uid': self.derstandard_facebook, + "audience_size": ["2021-05-06", + "2022-05-06"], + "audience_size|count": + {"0": 347671, + "1": 456789}, + "audience_size|unit": + {"0": "followers", + "1": "followers"} + }) + self.assertNotEqual(res, False) + + def test_new_learning_material(self): sample_data = { "authors": ["0000-0002-0387-5377", "0000-0001-5971-8816"], @@ -861,8 +897,7 @@ def test_review_overview(self): self.assertEqual(response.status_code, 403) else: self.assertEqual(response.status_code, 200) - self.assertEqual( - response.json[0]['uid'], self.derstandard_print) + self.assertIn(self.derstandard_print, [item["uid"] for item in response.json]) response = c.get('/api/review', query_string={'country': self.austria_uid}, diff --git a/tests/test_api_sanitizer.py b/tests/test_api_sanitizer.py index e482103..87f45b3 100644 --- a/tests/test_api_sanitizer.py +++ b/tests/test_api_sanitizer.py @@ -139,7 +139,7 @@ def test_list_facets(self): 'kind': 'CS-GO'}) self.assertIn(' "JB" (kind="CS-GO")', sanitizer.set_nquads) - + def test_edit_entry(self): with self.app.app_context(): @@ -183,6 +183,24 @@ def test_edit_entry(self): sanitizer = Sanitizer.edit(correct, self.reviewer) self.assertEqual(f"<{self.derstandard_mbh_uid}> * .", sanitizer.delete_nquads) + def test_edit_list_facets(self): + with self.app.app_context(): + delete = {'uid': self.derstandard_facebook, "audience_size": None} + sanitizer = Sanitizer.edit(delete, self.reviewer, dgraph_type="NewsSource") + self.assertEqual(list(sanitizer.overwrite.values())[0], ["audience_size"]) + self.assertEqual(sanitizer.delete_nquads, f"<{self.derstandard_facebook}> * .") + + edit = {'uid': self.derstandard_facebook, + "audience_size": ["2021-05-06"], + "audience_size|count": {"0": 1234}, + "audience_size|unit": {"0": "followers"}} + + sanitizer = Sanitizer.edit(edit, self.reviewer, dgraph_type="NewsSource") + self.assertEqual(list(sanitizer.overwrite.values())[0], ["audience_size"]) + self.assertEqual(sanitizer.delete_nquads, f"<{self.derstandard_facebook}> * .") + self.assertIn(f'<{self.derstandard_facebook}> "2021-05-06T00:00:00" (count=1234, unit="followers") .', sanitizer.set_nquads) + + def test_new_org(self): with self.app.app_context():