def test_delete_document_from_folder(self): self.before_each() # add docs to folder folder = db_session_users.query(UserFolder).filter_by( user_id=self.user.id, name='test_folder').first() user_folder_documents = [ UserFolderDocument({ "user_folder_id": folder.id, 'doc_id': 1, }), UserFolderDocument({ "user_folder_id": folder.id, 'doc_id': 2, }), ] db_session_users.add_all(user_folder_documents) db_session_users.commit() # delete docs in the folder request_body = json.dumps({'document_ids': [1, 2]}) response = self.client.delete("/folders/" + str(folder.id), headers={'Authorization': self.token}, data=request_body) self.assert200(response) self.assertIn('msg', response.json)
def test_extend_exp_date_for_inactive_subscription(self): self.before_each() s1 = self.subscriptions[0] s1.status = Subscription.INACTIVE_STATUS db_session_users.add(s1) db_session_users.commit() date_in_future = datetime.datetime.utcnow() + datetime.timedelta( days=20) new_exp_date = date_in_future.date() request_body = json.dumps({ 'expiration_date': str(new_exp_date), }) response = self.client.post( "/subscriptions/" + str(self.subscriptions[0].id), headers={'Authorization': self.admin_user_token}, data=request_body) self.assert200(response) self.assertIn("new_subscription", response.json) self.assertIsInstance(response.json["new_subscription"], dict) result_subscription = response.json["new_subscription"] self.assertEqual(result_subscription['status'], Subscription.ACTIVE_STATUS) self.assertEqual(result_subscription['status_reason'], Subscription.REACTIVATED_STATUS_REASON) res_date = datetime.datetime.strptime( str(result_subscription['expiration_date']), "%a, %d %b %Y %H:%M:%S %Z") self.assertEqual(res_date.date(), date_in_future.date())
def before_each(self): db_session_users.query(Subscription).delete() self.subscriptions = [ Subscription({ 'stripe_id': 'sub_BJJGmBDQP5Nblr', 'user_id': self.user.id, 'plan_id': 4, 'payment_type': 'stripe', 'start_date': self.start_date, 'latest': True, 'status': 'active', 'expiration_date': self.expiration_date }), Subscription({ 'stripe_id': 'free_trial', 'user_id': self.user.id, 'plan_id': 1, 'latest': False, 'start_date': self.start_date, 'end_date': self.end_date, 'modified_by_user_id': 1, 'status': 'active', 'expiration_date': self.expiration_date }) ] db_session_users.add_all(self.subscriptions) db_session_users.commit()
def test_delete_document_not_in_folder(self): self.before_each() # add document to folder folder = db_session_users.query(UserFolder).filter_by( user_id=self.user.id, name='test_folder').first() user_folder_documents = UserFolderDocument({ "user_folder_id": folder.id, 'doc_id': 1, }) db_session_users.add(user_folder_documents) db_session_users.commit() # make sure document does not exsist user_folder_document = db_session_users.query( UserFolderDocument).filter_by(user_folder_id=folder.id, doc_id=1872).first() self.assertIsNone(user_folder_document) # delete another non-existent document from the folder request_body = json.dumps({'document_ids': [1872, 2983, 1992]}) response = self.client.delete("/folders/" + str(folder.id), headers={'Authorization': self.token}, data=request_body) self.assert404(response) self.assertIn('errors', response.json)
def test_get_annotation_tasks_by_annotation_type(self): self.before_each() first_task = self.tasks[0] first_task.type = "contributor" first_task.is_contributor_task = True db_session_users.add(first_task) second_task = self.tasks[1] second_task.type = AnnotationTask.TOPIC_ANNOTATION_TYPE second_task.is_contributor_task = True second_task.user_ids = [self.contributor_user.id] db_session_users.add(second_task) new_task_no_flag = AnnotationTask({ 'name': 'watman', 'topics': { 'banking': {'topic_id': 1, 'topic_table': 'topics'}, 'lending': {'topic_id': 2, 'topic_table': 'topics'}, }, 'type': AnnotationTask.TOPIC_ANNOTATION_TYPE, 'is_contributor_task': False, 'user_ids': [self.contributor_user.id] }) db_session_users.add(new_task_no_flag) db_session_users.commit() db_session_users.refresh(new_task_no_flag) response = self.client.get("/annotation_tasks?type=topic_annotation", headers={'Authorization': self.contributor_user_token}) self.assert200(response) self.assertIn("annotation_tasks", response.json) result_tasks = response.json["annotation_tasks"] self.assertIsInstance(result_tasks, list) self.assertEqual(len(result_tasks), 2) self.assertEqual(result_tasks[0]['id'], second_task.id) self.assertEqual(result_tasks[1]['id'], new_task_no_flag.id)
def test_delete_shared_folder_with_documents(self): self.before_each() folder = db_session_users.query(UserFolder).filter_by( user_id=self.user.id, name='test_folder').first() # share folder user_shared_folder = UserSharedFolderFactory(user_id=self.user.id, folder_id=folder.id, owner=True) db_session_users.add(user_shared_folder) db_session_users.commit() # add docs to folder user_folder_documents = [ UserFolderDocFactory(user_folder_id=folder.id, doc_id=1), UserFolderDocFactory(user_folder_id=folder.id, doc_id=2), ] db_session_users.add_all(user_folder_documents) db_session_users.commit() # delete the folder request_body = json.dumps({}) response = self.client.delete("/folders/" + str(folder.id), headers={'Authorization': self.token}, data=request_body) self.assert200(response) self.assertIn('msg', response.json)
def before_each(self): self.teams = [ UserTeamFactory(name='test_team'), UserTeamFactory(name='foo_team_2'), ] db_session_users.add_all(self.teams) db_session_users.commit()
def test_create_annotation_task_with_task_group(self): self.before_each() # make an AnnotationTaskTopicGroup that contains first two annotation tasks in self.tasks task_group = AnnotationTaskTopicGroup({ 'name': 'task_group_1', 'description': 'first task group', 'annotation_task_ids': [self.tasks[0].id, self.tasks[1].id], 'arbitrary_tags': ["tag1", "tag2"], 'topic_id': 1, 'gold_annotator_user_ids': [1, 2] }) self.task_groups = [task_group] db_session_users.add_all(self.task_groups) db_session_users.commit() for group in self.task_groups: db_session_users.refresh(group) # create two new annotation tasks that point point to this existing annotation_task_topic_group request_body_1 = json.dumps({ 'name': 'wat_1', 'topics': { 'banking': {'topic_id': 1, 'topic_table': 'topics'}, 'lending': {'topic_id': 2, 'topic_table': 'topics'} }, 'user_ids': [self.user.id], 'term_sampling_group_ids': [1], 'annotation_task_topic_group_id': self.task_groups[0].id }) request_body_2 = json.dumps({ 'name': 'wat_2', 'topics': { 'banking': {'topic_id': 1, 'topic_table': 'topics'}, 'lending': {'topic_id': 2, 'topic_table': 'topics'} }, 'user_ids': [self.user.id], 'term_sampling_group_ids': [1], 'annotation_task_topic_group_id': self.task_groups[0].id }) response_1 = self.client.post("/annotation_tasks", headers={'Authorization': self.admin_user_token}, data=request_body_1) task_result_1 = response_1.json["annotation_task"] response_2 = self.client.post("/annotation_tasks", headers={'Authorization': self.admin_user_token}, data=request_body_2) task_result_2 = response_2.json["annotation_task"] for group in self.task_groups: db_session_users.refresh(group) # check that these two tasks point to task group correctly task_from_db_1 = db_session_users.query(AnnotationTask).filter_by(id=task_result_1['id']).first() task_from_db_2 = db_session_users.query(AnnotationTask).filter_by(id=task_result_2['id']).first() self.assertEqual(task_from_db_1.annotation_task_topic_group_id, self.task_groups[0].id) self.assertEqual(task_from_db_2.annotation_task_topic_group_id, self.task_groups[0].id) # check that ORM query on the annotation_task_topic_group now gives the these two annotation tasks task_group_from_db = db_session_users.query(AnnotationTaskTopicGroup)\ .filter_by(id=self.task_groups[0].id)\ .first() self.assertEqual({task_from_db_1, task_from_db_2}, set(task_group_from_db.annotation_tasks))
def test_update_plan_for_inactive_subscription(self): self.before_each() s1 = self.subscriptions[0] s1.status = Subscription.INACTIVE_STATUS s1.status_reason = Subscription.EXPIRED_STATUS_REASON s1.notes = 'User suspended due to inactivity' db_session_users.add(s1) db_session_users.commit() # non recurring plan plan_id = 1 request_body = json.dumps({'plan_id': plan_id}) response = self.client.post( "/subscriptions/" + str(self.subscriptions[0].id), headers={'Authorization': self.admin_user_token}, data=request_body) self.assert200(response) self.assertIn("new_subscription", response.json) self.assertIsInstance(response.json["new_subscription"], dict) result_subscription = response.json["new_subscription"] self.assertEqual(result_subscription["plan_id"], plan_id) plan = db_session_users().query(Plan).filter_by(id=plan_id).first() self.assertEqual(result_subscription["stripe_id"], plan.stripe_id) self.assertEqual(result_subscription['status'], Subscription.ACTIVE_STATUS) self.assertEqual(result_subscription['status_reason'], Subscription.REACTIVATED_STATUS_REASON) self.assertIsNone(result_subscription['notes']) self.assertIsNotNone(result_subscription['expiration_date'])
def before_each(self): self.user_folder = [ UserFolderFactory(user_id=self.user.id), UserFolderFactory(user_id=self.user.id), ] db_session_users.add_all(self.user_folder) db_session_users.commit()
def test_update_user_folder_with_new_documents(self): # create a folder user_folder = UserFolderFactory(user_id=self.user.id) db_session_users.add(user_folder) db_session_users.commit() db_session_users.refresh(user_folder) # add single doc to folder folder = db_session_users.query(UserFolder).filter_by( user_id=self.user.id).first() request_body = json.dumps({ 'document_ids': [1, 2, 3], 'folder_id': folder.id, }) response = self.client.post("/documents", headers={'Authorization': self.token}, data=request_body) self.assert200(response) self.assertIn('documents', response.json) self.assertEquals(response.json['documents'], { 'ids': [1, 2, 3], 'documents_added_to_folder': True })
def test_skip_flagged_document(self): doc_id = 3 # first write a doc for review ufd = UserFlaggedDocument({ 'issue_severity': 'review', 'issue_type': 'technical', 'field': 'title', 'notes': 'typo in title', 'user_id': self.user.id, 'doc_id': doc_id }) db_session_users.add(ufd) db_session_users.commit() db_session_users.refresh(ufd) # then post a status update to skipped flagged_data = json.dumps( {'flagged': { 'id': ufd.id, 'status': 'skipped' }}) response = self.client.post( "/documents/{}".format(doc_id), headers={'Authorization': self.qa_user_token}, data=flagged_data) self.assert200(response) self.assertIn('document', response.json) self.assertEquals(response.json['document']['id'], doc_id) self.assertEquals(response.json['document']['issue_severity'], 'review') self.assertEquals(response.json['document']['issue_type'], 'technical') self.assertEquals(response.json['document']['status'], 'skipped') db_session_users.refresh(ufd) self.assertEquals(ufd.status, 'skipped')
def test_update_plan_to_recurring_plan(self): self.before_each() s1 = self.subscriptions[0] s1.plan_id = 1 s1.expiration_date = datetime.datetime.utcnow() db_session_users.add(s1) db_session_users.commit() # recurring plan plan_id = 4 request_body = json.dumps({'plan_id': plan_id}) response = self.client.post( "/subscriptions/" + str(self.subscriptions[0].id), headers={'Authorization': self.admin_user_token}, data=request_body) self.assert200(response) self.assertIn("new_subscription", response.json) self.assertIsInstance(response.json["new_subscription"], dict) result_subscription = response.json["new_subscription"] self.assertEqual(result_subscription["plan_id"], plan_id) plan = db_session_users().query(Plan).filter_by(id=plan_id).first() self.assertEqual(result_subscription["stripe_id"], plan.stripe_id) self.assertEqual(result_subscription['status'], Subscription.ACTIVE_STATUS) self.assertEqual(result_subscription['status_reason'], Subscription.REACTIVATED_STATUS_REASON) self.assertIsNone(result_subscription['expiration_date'])
def before_each_tags(self): self.user_tags = [ UserTagFactory(user_id=self.user.id), UserTagFactory(user_id=self.user.id) ] self.system_tags = [SystemTagFactory(), SystemTagFactory()] db_session_users.add_all(self.system_tags) db_session_users.add_all(self.user_tags) db_session_users.commit()
def before_each(self): db_session_users.query(InsightsTable).delete() self.data = [ InsightsTable({ 'slug': 'enforcement-action-12months', 'name': 'enforcements_pie', 'raw_data': {"table": [["agency", "count"], ["TREAS", 219], ["OCC", 109], ["NYSE", 63], ["CFPB", 394], ["FRS", 89], ["FDIC", 270], ["FTC", 208], ["SEC", 1885], ["FINRA", 1236]], "tuples": [["TREAS", 219], ["OCC", 109], ["NYSE", 63], ["CFPB", 394], ["FRS", 89], ["FDIC", 270], ["FTC", 208], ["SEC", 1885], ["FINRA", 1236]]}, 'csv_table': "agency,count\nTREAS,219\nOCC,109\nNYSE,63\nCFPB,394\nFRS,89\nFDIC,270\nFTC,208\nSEC,1885\nFINRA,1236" }) ] db_session_users.add_all(self.data) db_session_users.commit()
def test_remove_positive_tag_from_document(self): doc_id = 3 self.before_each_tags() user_doc_tag = UserDocumentTag({ 'user_tag_id': self.user_tags[0].id, 'is_positive': True, 'display_style': 'modal', 'doc_id': doc_id, 'user_id': self.user.id }) db_session_users.add(user_doc_tag) db_session_users.commit() request_data = { 'tag': { 'id': self.user_tags[0].id, 'is_positive': False, 'display_style': 'modal' } } response = self.client.post("/documents/{}".format(doc_id), headers={'Authorization': self.token}, data=json.dumps(request_data)) self.assert200(response) self.assertIn('document', response.json) for key in [ 'doc_id', 'user_id', 'user_tag_id', 'is_positive', 'display_style' ]: self.assertIn(key, response.json['document']) self.assertEquals(response.json['document']['id'], doc_id) self.assertEquals(response.json['document']['user_tag_id'], self.user_tags[0].id) self.assertEquals(response.json['document']['user_id'], self.user.id) self.assertFalse(response.json['document']['is_positive']) self.assertEquals(response.json['document']['display_style'], 'modal') # make sure it is updated (not new) in the db too db_session_users.refresh(user_doc_tag) self.assertFalse(user_doc_tag.is_positive) # now check that it does not show up in the get_document route response = self.client.get( "/documents/{}".format(doc_id), headers={'Authorization': self.token}, ) self.assert200(response) tag_ids = [t[0] for t in response.json['document']['tags']] self.assertNotIn(self.user_tags[0].id, tag_ids)
def before_each(self): self.user_tags = [ UserTagFactory(user_id=self.user.id), UserTagFactory(user_id=self.user.id), ] self.system_tags = [ SystemTagFactory(), SystemTagFactory(), SystemTagFactory(active_suggestion=False) ] db_session_users.add_all(self.system_tags) db_session_users.add_all(self.user_tags) db_session_users.commit()
def test_update_annotation_task_topics(self): self.before_each() body_hash = { 'topics': { 'banking': {'topic_id': 1, 'topic_table': 'topics'}, 'lending': {'topic_id': 2, 'topic_table': 'topics'}, 'fintech': {'topic_id': 3, 'topic_table': 'topics'}, 'payments': {'topic_id': 4, 'topic_table': 'topics'}, } } request_body = json.dumps(body_hash) response = self.client.post("/annotation_tasks/"+str(self.tasks[1].id), headers={'Authorization': self.admin_user_token}, data=request_body) self.assert200(response) self.assertIn("annotation_task", response.json) self.assertIsInstance(response.json["annotation_task"], dict) task_result = response.json["annotation_task"] self.assertEqual(task_result['name'], 'foo') self.assertEqual(task_result['status'], AnnotationTask.ACTIVE_STATUS) self.assertIsInstance(task_result['topics'], dict) for key in ['banking', 'lending', 'fintech', 'payments']: self.assertIn(key, task_result['topics']) self.assertIsInstance(task_result['user_ids'], list) self.assertIsInstance(task_result['updated_at'], unicode) self.assertIsInstance(task_result['created_at'], unicode) self.assertIsInstance(task_result['config'], dict) self.assertIsInstance(task_result['id'], int) self.assertNotEqual(task_result['id'], self.tasks[0].id) self.assertIsNone(task_result['active_task_id']) self.assertIsInstance(task_result['old_tasks'], list) self.assertEqual(len(task_result['old_tasks']), 1) self.assertEqual(task_result['old_tasks'][0]['active_task_id'], task_result['id']) self.assertEqual(task_result['old_tasks'][0]['status'], AnnotationTask.INACTIVE_STATUS) # now make a second update and make sure they both stack correctly for i in xrange(1, 5): j1 = AnnotationJob({ "doc_id": 1, "priority": 1.0, "status": AnnotationJob.QUEUED_STATUS, "annotation_task_id": task_result['id'] }) db_session_users.add(j1) db_session_users.commit() body_hash["topics"]["foo"] = {'topic_id': 5, 'topic_table': 'topics'} request_body = json.dumps(body_hash) response = self.client.post("/annotation_tasks/" + str(task_result['id']), headers={'Authorization': self.admin_user_token}, data=request_body) self.assert200(response) self.assertEqual(len(response.json["annotation_task"]['old_tasks']), 2) self.assertIsInstance(task_result['term_sampling_group_ids'], list) self.assertEqual(len(task_result['term_sampling_group_ids']), 0)
def test_mark_document_as_unbookmarked(self): # first lets mark this document/user pair as bookmarked, so the test can try marking it as unbookmarked user_documents = [ UserDocument({ 'user_id': self.user.id, 'doc_id': 3, 'bookmarked': True }), UserDocument({ 'user_id': self.user.id, 'doc_id': 4, 'bookmarked': True }), UserDocument({ 'user_id': self.user.id, 'doc_id': 5, 'bookmarked': True }), ] db_session_users.add_all(user_documents) db_session_users.commit() request_body = json.dumps({ 'document_ids': [3, 4, 5], 'bookmarked': False }) response = self.client.post("/documents", headers={'Authorization': self.token}, data=request_body) self.assert200(response) self.assertIn('documents', response.json) self.assertEquals(response.json['documents'], { 'ids': [3, 4, 5], 'bookmarked': False }) user_document = db_session_users.query(UserDocument).filter_by( doc_id=3, user_id=self.user.id).first() self.assertIsNotNone(user_document) self.assertFalse(user_document.bookmarked) user_document_two = db_session_users.query(UserDocument).filter_by( doc_id=4, user_id=self.user.id).first() self.assertIsNotNone(user_document_two) self.assertFalse(user_document_two.bookmarked) user_document_three = db_session_users.query(UserDocument).filter_by( doc_id=5, user_id=self.user.id).first() self.assertIsNotNone(user_document_three) self.assertFalse(user_document_three.bookmarked)
def before_each(self): # n.b. cleaning this out due to other test interference db_session_users.query(UserSharedFolder).delete() db_session_users.query(UserFolderDocument).delete() db_session_users.query(UserFolder).delete() # create a folder self.user_folder = UserFolder({ "name": 'test_folder', 'user_id': self.user.id, }) db_session_users.add(self.user_folder) db_session_users.commit() db_session_users.refresh(self.user_folder)
def test_get_annotation_tasks_by_contributor_type(self): self.before_each() first_task = self.tasks[0] first_task.type = "contributor" first_task.is_contributor_task = True db_session_users.add(first_task) db_session_users.commit() response = self.client.get("/annotation_tasks", headers={'Authorization': self.contributor_user_token}) self.assert200(response) self.assertIn("annotation_tasks", response.json) result_tasks = response.json["annotation_tasks"] self.assertIsInstance(result_tasks, list) self.assertEqual(len(result_tasks), 1) self.assertEqual(result_tasks[0]['id'], first_task.id)
def test_get_all_subscriptions(self): self.before_each() response = self.client.get( "/subscriptions/all", headers={'Authorization': self.admin_user_token}) self.assert200(response) self.assertIn("all_subscriptions", response.json) self.assertIsInstance(response.json["all_subscriptions"], list) self.assertEqual(len(response.json["all_subscriptions"]), 1) subscription = response.json["all_subscriptions"][0] self.assertEqual(subscription["user_id"], self.user.id) self.assertEqual(subscription["plan_id"], 4) self.assertEqual(subscription["payment_type"], "stripe") expected_user = db_session_users.query(User).filter_by( id=subscription['user_id']).first() expected_plan = db_session_users.query(Plan).filter_by( id=subscription['plan_id']).first() self.assertEqual(subscription["first_name"], expected_user.first_name) self.assertEqual(subscription["last_name"], expected_user.last_name) self.assertEqual(subscription["email"], expected_user.email) self.assertEqual(subscription["roles"], expected_user.roles) self.assertEqual(subscription["plan_name"], expected_plan.name) # add one more subscription new_subscription = Subscription({ 'stripe_id': 'free_trial', 'user_id': self.qa_user.id, 'plan_id': 1, 'latest': True }) db_session_users.add(new_subscription) db_session_users.commit() response = self.client.get( "/subscriptions/all", headers={'Authorization': self.admin_user_token}) self.assert200(response) self.assertIn("all_subscriptions", response.json) self.assertIsInstance(response.json["all_subscriptions"], list) self.assertEqual(len(response.json["all_subscriptions"]), 2)
def before_each(self): # n.b. cleaning this out due to other test interference db_session_users.query(UserDocumentTag).delete() db_session_users.query(UserTag).delete() self.user_tags = [ UserTagFactory(user_id=self.user.id), UserTagFactory(user_id=self.user.id), ] self.system_tags = [ SystemTagFactory(), SystemTagFactory(), SystemTagFactory(active_suggestion=False) ] db_session_users.add_all(self.system_tags) db_session_users.add_all(self.user_tags) db_session_users.commit()
def test_update_annotation_task_topics_but_no_jobs(self): self.before_each() db_session_users.query(AnnotationJob).delete() db_session_users.add(AnnotationTaskTermSamplingGroup({'annotation_task_id': self.tasks[0].id, 'term_sampling_group_id': 1})) db_session_users.commit() request_body = json.dumps({ 'name': 'watman', 'topics': { 'banking': {'topic_id': 1, 'topic_table': 'topics'}, 'lending': {'topic_id': 2, 'topic_table': 'topics'}, 'fintech': {'topic_id': 3, 'topic_table': 'topics'}, 'payments': {'topic_id': 4, 'topic_table': 'topics'}, }, 'user_ids': [self.user.id], 'term_sampling_group_ids': [2], 'config': { "foo": "bar" } }) response = self.client.post("/annotation_tasks/"+str(self.tasks[0].id), headers={'Authorization': self.admin_user_token}, data=request_body) self.assert200(response) self.assertIn("annotation_task", response.json) self.assertIsInstance(response.json["annotation_task"], dict) task_result = response.json["annotation_task"] self.assertEqual(task_result['name'], 'watman') self.assertEqual(task_result['status'], AnnotationTask.ACTIVE_STATUS) self.assertIsInstance(task_result['topics'], dict) for key in ['banking', 'lending']: self.assertIn(key, task_result['topics']) self.assertIsInstance(task_result['user_ids'], list) self.assertEqual(len(task_result['user_ids']), 1) self.assertIn(self.user.id, task_result['user_ids']) self.assertIsInstance(task_result['updated_at'], unicode) self.assertIsInstance(task_result['created_at'], unicode) self.assertIsInstance(task_result['config'], dict) self.assertIn('foo', task_result['config']) self.assertIsInstance(task_result['id'], int) self.assertEqual(task_result['id'], self.tasks[0].id) self.assertIsNone(task_result['active_task_id']) self.assertIsInstance(task_result['old_tasks'], list) self.assertEqual(len(task_result['old_tasks']), 0) self.assertIsInstance(task_result['term_sampling_group_ids'], list) self.assertEqual(len(task_result['term_sampling_group_ids']), 1) self.assertIn(2, task_result['term_sampling_group_ids']) self.assertNotIn(1, task_result['term_sampling_group_ids'])
def test_share_user_folder_multiple_users(self): self.before_each() # first lets create a shared folder shared_folder = UserSharedFolder({ "user_id": self.user.id, "folder_id": self.user_folder[0].id, "owner": True, "editor": False, "viewer": False }) db_session_users.add(shared_folder) db_session_users.commit() # now lets add users users = [{ "id": 2, "editor": False, "viewer": True }, { "id": 3, "editor": True, "viewer": False }, { "id": 4, "editor": False, "viewer": True }] request_body = json.dumps({"share_add_users": True, "users": users}) # test err response = self.client.post("/folders/" + str(self.user_folder[1].id), headers={'Authorization': self.token}, data=request_body) self.assertIn("errors", response.json) # test success request_body = json.dumps({"share_add_users": True, "users": users}) response = self.client.post("/folders/" + str(self.user_folder[0].id), headers={'Authorization': self.token}, data=request_body) self.assert200(response) self.assertTrue(response.json['folder_shared_with_users'])
def before_each(self): db_session_users.query(UserFollowedEntity).delete() self.user_followed_entities = [ UserFollowedEntity({ 'user_id': self.user.id, 'entity_id': 1, 'entity_type': 'named_regulations', 'following': True }), UserFollowedEntity({ 'user_id': self.user.id, 'entity_id': 2, 'entity_type': 'acts', 'following': True }), UserFollowedEntity({ 'user_id': self.user.id, 'entity_id': 3, 'entity_type': 'acts', 'following': False }), UserFollowedEntity({ 'user_id': self.user.id, 'entity_id': 1, 'entity_type': 'jurisdictions', 'following': True }), UserFollowedEntity({ 'user_id': self.user.id, 'entity_id': 2, 'entity_type': 'jurisdictions', 'following': True }), UserFollowedEntity({ 'user_id': self.user.id, 'entity_id': 1, 'entity_type': 'news_sources', 'following': True }), ] self.actually_followed_entities = [f for f in self.user_followed_entities if f.following] db_session_users.add_all(self.user_followed_entities) db_session_users.commit()
def test_get_annotation_task_group_tags_for_task(self): self.before_each() # create AnnotationTaskGroups objects # self.tasks[0] is contained in both task groups task_group_1 = AnnotationTaskTopicGroup({ 'name': 'task_group_1', 'description': 'first task group', 'annotation_task_ids': [self.tasks[0].id], 'arbitrary_tags': ["tag1", "tag2"], 'topic_id': 1 }) task_group_2 = AnnotationTaskTopicGroup({ 'name': 'task_group_2', 'description': 'second task group', 'annotation_task_ids': [self.tasks[0].id, self.tasks[1].id], 'arbitrary_tags': ["tag2", "tag3"], 'topic_id': 2 }) self.task_groups = [task_group_1, task_group_2] db_session_users.add_all(self.task_groups) db_session_users.commit() for tg in self.task_groups: db_session_users.refresh(tg) # make request for task contained in one task group response = self.client.get('/annotation_tasks/' + str(self.tasks[1].id) + '/task_group_labels', headers={'Authorization': self.admin_user_token}) self.assert200(response) self.assertIn("annotation_task_group_tags", response.json) self.assertEqual(set(response.json["annotation_task_group_tags"]), {"tag2", "tag3"}) # make request for task contained in two task groups response = self.client.get('/annotation_tasks/' + str(self.tasks[0].id) + '/task_group_labels', headers={'Authorization': self.admin_user_token}) self.assert200(response) self.assertIn("annotation_task_group_tags", response.json) self.assertEqual(set(response.json["annotation_task_group_tags"]), {"tag1", "tag2", "tag3", "WARNING: MORE THAN ONE ANNOTATION TASK GROUP CONTAINS THIS TASK"})
def before_each(self): db_session_users.query(UserTopic).delete() self.user_followed_topics = [ UserTopic({ 'user_id': self.user.id, 'topic_id': 1, 'following': True }), UserTopic({ 'user_id': self.user.id, 'topic_id': 2, 'following': True }), UserTopic({ 'user_id': self.user.id, 'topic_id': 3, 'following': False }), ] db_session_users.add_all(self.user_followed_topics) db_session_users.commit()
def before_each(self): db_session_users.query(UserSavedSearch).delete() self.user_saved_searches = [ UserSavedSearch({ 'name': 'test', 'user_id': self.user.id, 'search_args': { "query": "test" } }), UserSavedSearch({ 'user_id': self.user.id, 'search_args': { "agency": 466 } }), UserSavedSearch({ 'name': 'bar', 'user_id': self.user.id, 'search_args': { "act_id": self.acts[0]['id'] } }), UserSavedSearch({ 'name': 'multy', 'user_id': self.user.id, 'search_args': { "act_id": [d['id'] for d in self.acts[0:2]] } }), UserSavedSearch({ 'name': 'test3', 'user_id': self.new_user.id, 'search_args': { "query": "test" } }), ] db_session_users.add_all(self.user_saved_searches) db_session_users.commit()
def before_each(self): # n.b. cleaning this out due to other test interference db_session_users.query(TeamMember).delete() db_session_users.query(Team).delete() self.teams = [ UserTeamFactory(name='test_team'), UserTeamFactory(name='foo_team_2') ] db_session_users.add_all(self.teams) db_session_users.commit() for team in self.teams: db_session_users.refresh(team) self.teamMembers = [ UserTeamMemberFactory(user_id=self.user.id, team_id=self.teams[0].id), UserTeamMemberFactory(user_id=self.user.id, team_id=self.teams[1].id), ] db_session_users.add_all(self.teamMembers) db_session_users.commit() for tm in self.teamMembers: db_session_users.refresh(tm)