def test_get_workgroup_user_ids(self): cursor = Workgroup.get_user_ids_in_workgroup(self.test_workgroup.id) user_ids = [user_id for user_id in cursor.all()] self.assertEqual(len(user_ids), 1) self.assertIn(self.test_user.id, user_ids) cursor = Workgroup.get_user_ids_in_workgroup(self.test_workgroup2.id) user_ids = [user_id for user_id in cursor.all()] self.assertEqual(len(user_ids), 1) self.assertIn(self.test_user2.id, user_ids)
def test_workgroups_users_post(self): data = { 'name': self.test_workgroup_name, 'project': self.test_project.id } response = self.do_post(self.test_workgroups_uri, data) self.assertEqual(response.status_code, 201) test_uri = '{}{}/'.format(self.test_workgroups_uri, str(response.data['id'])) users_uri = '{}users/'.format(test_uri) data = {"id": self.test_user.id} response = self.do_post(users_uri, data) self.assertEqual(response.status_code, 201) response = self.do_get(test_uri) self.assertEqual(response.status_code, 200) self.assertEqual(response.data['users'][0]['id'], self.test_user.id) # make sure a discussion cohort was created cohort_name = Workgroup.cohort_name_for_workgroup( self.test_project.id, response.data['id'], self.test_workgroup_name ) cohort = get_cohort_by_name(self.test_course.id, cohort_name) self.assertIsNotNone(cohort) self.assertTrue(is_user_in_cohort(cohort, self.test_user.id))
def test_workgroups_list_post(self): data = { 'name': self.test_workgroup_name, 'project': self.test_project.id } response = self.do_post(self.test_workgroups_uri, data) self.assertEqual(response.status_code, 201) self.assertGreater(response.data['id'], 0) confirm_uri = '{}{}{}/'.format( self.test_server_prefix, self.test_workgroups_uri, str(response.data['id']) ) self.assertEqual(response.data['url'], confirm_uri) self.assertGreater(response.data['id'], 0) self.assertEqual(response.data['name'], self.test_workgroup_name) self.assertEqual(response.data['project'], self.test_project.id) self.assertIsNotNone(response.data['users']) self.assertIsNotNone(response.data['groups']) self.assertIsNotNone(response.data['submissions']) self.assertIsNotNone(response.data['workgroup_reviews']) self.assertIsNotNone(response.data['peer_reviews']) self.assertIsNotNone(response.data['created']) self.assertIsNotNone(response.data['modified']) # make sure a discussion cohort was created cohort_name = Workgroup.cohort_name_for_workgroup( self.test_project.id, response.data['id'], self.test_workgroup_name ) cohort = get_cohort_by_name(self.test_course.id, cohort_name) self.assertIsNotNone(cohort)
def test_workgroups_users_post_with_cohort_backfill(self): """ This test asserts a case where a workgroup was created before the existence of a cohorted discussion """ data = { 'name': self.test_workgroup_name, 'project': self.test_project.id } response = self.do_post(self.test_workgroups_uri, data) self.assertEqual(response.status_code, 201) test_uri = '{}{}/'.format(self.test_workgroups_uri, str(response.data['id'])) users_uri = '{}users/'.format(test_uri) data = {"id": self.test_user.id} response = self.do_post(users_uri, data) self.assertEqual(response.status_code, 201) response = self.do_get(test_uri) self.assertEqual(response.status_code, 200) self.assertEqual(response.data['users'][0]['id'], self.test_user.id) cohort_name = Workgroup.cohort_name_for_workgroup( self.test_project.id, response.data['id'], self.test_workgroup_name ) # now let's remove existing cohort users cohort = get_cohort_by_name(self.test_course.id, cohort_name) self.assertTrue(is_user_in_cohort(cohort, self.test_user.id)) remove_user_from_cohort(cohort, self.test_user.username) self.assertFalse(is_user_in_cohort(cohort, self.test_user.id)) # delete cohort delete_empty_cohort(self.test_course.id, cohort_name) self.assertEqual(0, len(get_course_cohort_names(self.test_course.id))) # add a 2nd user and make sure a discussion cohort was created and users were backfilled test_uri = '{}{}/'.format(self.test_workgroups_uri, str(response.data['id'])) users_uri = '{}users/'.format(test_uri) data = {"id": self.test_user2.id} response = self.do_post(users_uri, data) self.assertEqual(response.status_code, 201) # now inspect cohort and assert that things are as we anticipate (i.e. both users are in there) cohort = get_cohort_by_name(self.test_course.id, cohort_name) self.assertIsNotNone(cohort) self.assertTrue(is_user_in_cohort(cohort, self.test_user.id)) self.assertTrue(is_user_in_cohort(cohort, self.test_user2.id))