def setUp(self): self.user_1 = AuthUserFactory() self.auth_1 = Auth(self.user_1) self.view = UserWorkshopFormView() self.workshop_date = timezone.now() self.data = [ ['none', 'date', 'none', 'none', 'none', 'email', 'none'], [ None, self.workshop_date.strftime('%m/%d/%y'), None, None, None, self.user_1.username, None ], ] self.user_exists_by_name_data = [ ['number', 'date', 'location', 'topic', 'name', 'email', 'other'], [ None, self.workshop_date.strftime('%m/%d/%y'), None, None, self.user_1.fullname, '*****@*****.**', None ], ] self.user_not_found_data = [ ['none', 'date', 'none', 'none', 'none', 'email', 'none'], [ None, self.workshop_date.strftime('%m/%d/%y'), None, None, None, '*****@*****.**', None ], ]
def setUp(self): self.user_1 = AuthUserFactory() self.auth_1 = Auth(self.user_1) self.view = UserWorkshopFormView() self.workshop_date = datetime.now() self.data = [ ['none', 'date', 'none', 'none', 'none', 'email', 'none'], [None, self.workshop_date.strftime('%m/%d/%y'), None, None, None, self.user_1.username, None], ] self.user_exists_by_name_data = [ ['number', 'date', 'location', 'topic', 'name', 'email', 'other'], [None, self.workshop_date.strftime('%m/%d/%y'), None, None, self.user_1.fullname, '*****@*****.**', None], ] self.user_not_found_data = [ ['none', 'date', 'none', 'none', 'none', 'email', 'none'], [None, self.workshop_date.strftime('%m/%d/%y'), None, None, None, '*****@*****.**', None], ]
class TestUserWorkshopFormView(AdminTestCase): def setUp(self): self.user_1 = AuthUserFactory() self.auth_1 = Auth(self.user_1) self.view = UserWorkshopFormView() self.workshop_date = datetime.now() self.data = [ ['none', 'date', 'none', 'none', 'none', 'email', 'none'], [None, self.workshop_date.strftime('%m/%d/%y'), None, None, None, self.user_1.username, None], ] self.user_exists_by_name_data = [ ['number', 'date', 'location', 'topic', 'name', 'email', 'other'], [None, self.workshop_date.strftime('%m/%d/%y'), None, None, self.user_1.fullname, '*****@*****.**', None], ] self.user_not_found_data = [ ['none', 'date', 'none', 'none', 'none', 'email', 'none'], [None, self.workshop_date.strftime('%m/%d/%y'), None, None, None, '*****@*****.**', None], ] def _create_and_parse_test_file(self, data): with open('test.csv', 'w') as fp: writer = csv.writer(fp) for row in data: writer.writerow(row) with file('test.csv') as fp: result_csv = self.view.parse(fp) return result_csv def _create_nodes_and_add_logs(self, first_activity_date, second_activity_date=None): node_one = ProjectFactory(creator=self.user_1, date_created=first_activity_date) node_one.add_log( 'log_added', params={'project': node_one._id}, auth=self.auth_1, log_date=first_activity_date, save=True ) if second_activity_date: node_two = ProjectFactory(creator=self.user_1, date_created=second_activity_date) node_two.add_log( 'log_added', params={'project': node_two._id}, auth=self.auth_1, log_date=second_activity_date, save=True ) def test_correct_number_of_columns_added(self): added_columns = ['OSF ID', 'Logs Since Workshop', 'Nodes Created Since Workshop', 'Last Log Data'] result_csv = self._create_and_parse_test_file(self.data) nt.assert_equal(len(self.data[0]) + len(added_columns), len(result_csv[0])) def test_user_activity_day_of_workshop_only(self): self._create_nodes_and_add_logs(first_activity_date=self.workshop_date) result_csv = self._create_and_parse_test_file(self.data) user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_logs_since_workshop, 0) nt.assert_equal(user_nodes_created_since_workshop, 0) def test_user_activity_before_workshop_only(self): activity_date = datetime.now() - timedelta(days=1) self._create_nodes_and_add_logs(first_activity_date=activity_date) result_csv = self._create_and_parse_test_file(self.data) user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_logs_since_workshop, 0) nt.assert_equal(user_nodes_created_since_workshop, 0) def test_user_activity_after_workshop_only(self): activity_date = datetime.now() + timedelta(days=1) self._create_nodes_and_add_logs(first_activity_date=activity_date) result_csv = self._create_and_parse_test_file(self.data) user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_logs_since_workshop, 2) nt.assert_equal(user_nodes_created_since_workshop, 1) def test_user_activity_day_of_workshop_and_before(self): activity_date = datetime.now() - timedelta(days=1) self._create_nodes_and_add_logs( first_activity_date=self.workshop_date, second_activity_date=activity_date ) result_csv = self._create_and_parse_test_file(self.data) user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_logs_since_workshop, 0) nt.assert_equal(user_nodes_created_since_workshop, 0) def test_user_activity_day_of_workshop_and_after(self): activity_date = datetime.now() + timedelta(days=1) self._create_nodes_and_add_logs( first_activity_date=self.workshop_date, second_activity_date=activity_date ) result_csv = self._create_and_parse_test_file(self.data) user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_logs_since_workshop, 2) nt.assert_equal(user_nodes_created_since_workshop, 1) def test_user_activity_before_workshop_and_after(self): before_activity_date = datetime.now() - timedelta(days=1) after_activity_date = datetime.now() + timedelta(days=1) self._create_nodes_and_add_logs( first_activity_date=before_activity_date, second_activity_date=after_activity_date ) result_csv = self._create_and_parse_test_file(self.data) user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_logs_since_workshop, 2) nt.assert_equal(user_nodes_created_since_workshop, 1) def test_user_osf_account_not_found(self): result_csv = self._create_and_parse_test_file(self.user_not_found_data) user_guid = result_csv[1][-4] last_log_date = result_csv[1][-1] user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_guid, '') nt.assert_equal(last_log_date, '') nt.assert_equal(user_logs_since_workshop, 0) nt.assert_equal(user_nodes_created_since_workshop, 0) def test_user_found_by_name(self): result_csv = self._create_and_parse_test_file(self.user_exists_by_name_data) user_guid = result_csv[1][-4] last_log_date = result_csv[1][-1] user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_guid, self.user_1._id) nt.assert_equal(last_log_date, '') nt.assert_equal(user_logs_since_workshop, 0) nt.assert_equal(user_nodes_created_since_workshop, 0) def test_form_valid(self): request = RequestFactory().post('/fake_path') data = [ ['none', 'date', 'none', 'none', 'none', 'email', 'none'], [None, '9/1/16', None, None, None, self.user_1.username, None], ] with open('test.csv', 'w') as fp: writer = csv.writer(fp) for row in data: writer.writerow(row) with file('test.csv', mode='rb') as fp: uploaded = SimpleUploadedFile(fp.name, fp.read(), content_type='text/csv') form = WorkshopForm(data={'document': uploaded}) form.is_valid() form.cleaned_data['document'] = uploaded setup_form_view(self.view, request, form) def tearDown(self): if os.path.isfile('test.csv'): os.remove('test.csv')
class TestUserWorkshopFormView(AdminTestCase): def setUp(self): self.user_1 = AuthUserFactory() self.auth_1 = Auth(self.user_1) self.view = UserWorkshopFormView() self.workshop_date = timezone.now() self.data = [ ['none', 'date', 'none', 'none', 'none', 'email', 'none'], [ None, self.workshop_date.strftime('%m/%d/%y'), None, None, None, self.user_1.username, None ], ] self.user_exists_by_name_data = [ ['number', 'date', 'location', 'topic', 'name', 'email', 'other'], [ None, self.workshop_date.strftime('%m/%d/%y'), None, None, self.user_1.fullname, '*****@*****.**', None ], ] self.user_not_found_data = [ ['none', 'date', 'none', 'none', 'none', 'email', 'none'], [ None, self.workshop_date.strftime('%m/%d/%y'), None, None, None, '*****@*****.**', None ], ] def _create_and_parse_test_file(self, data): with open('test.csv', 'w') as fp: writer = csv.writer(fp) for row in data: writer.writerow(row) with file('test.csv') as fp: result_csv = self.view.parse(fp) return result_csv def _create_nodes_and_add_logs(self, first_activity_date, second_activity_date=None): node_one = ProjectFactory(creator=self.user_1, date_created=first_activity_date) node_one.add_log('log_added', params={'project': node_one._id}, auth=self.auth_1, log_date=first_activity_date, save=True) if second_activity_date: node_two = ProjectFactory(creator=self.user_1, date_created=second_activity_date) node_two.add_log('log_added', params={'project': node_two._id}, auth=self.auth_1, log_date=second_activity_date, save=True) def test_correct_number_of_columns_added(self): added_columns = [ 'OSF ID', 'Logs Since Workshop', 'Nodes Created Since Workshop', 'Last Log Data' ] result_csv = self._create_and_parse_test_file(self.data) nt.assert_equal( len(self.data[0]) + len(added_columns), len(result_csv[0])) def test_user_activity_day_of_workshop_only(self): self._create_nodes_and_add_logs(first_activity_date=self.workshop_date) result_csv = self._create_and_parse_test_file(self.data) user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_logs_since_workshop, 0) nt.assert_equal(user_nodes_created_since_workshop, 0) def test_user_activity_before_workshop_only(self): activity_date = timezone.now() - timedelta(days=1) self._create_nodes_and_add_logs(first_activity_date=activity_date) result_csv = self._create_and_parse_test_file(self.data) user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_logs_since_workshop, 0) nt.assert_equal(user_nodes_created_since_workshop, 0) def test_user_activity_after_workshop_only(self): activity_date = timezone.now() + timedelta(days=1) self._create_nodes_and_add_logs(first_activity_date=activity_date) result_csv = self._create_and_parse_test_file(self.data) user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_logs_since_workshop, 2) nt.assert_equal(user_nodes_created_since_workshop, 1) def test_user_activity_day_of_workshop_and_before(self): activity_date = timezone.now() - timedelta(days=1) self._create_nodes_and_add_logs(first_activity_date=self.workshop_date, second_activity_date=activity_date) result_csv = self._create_and_parse_test_file(self.data) user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_logs_since_workshop, 0) nt.assert_equal(user_nodes_created_since_workshop, 0) def test_user_activity_day_of_workshop_and_after(self): activity_date = timezone.now() + timedelta(days=1) self._create_nodes_and_add_logs(first_activity_date=self.workshop_date, second_activity_date=activity_date) result_csv = self._create_and_parse_test_file(self.data) user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_logs_since_workshop, 2) nt.assert_equal(user_nodes_created_since_workshop, 1) def test_user_activity_before_workshop_and_after(self): before_activity_date = timezone.now() - timedelta(days=1) after_activity_date = timezone.now() + timedelta(days=1) self._create_nodes_and_add_logs( first_activity_date=before_activity_date, second_activity_date=after_activity_date) result_csv = self._create_and_parse_test_file(self.data) user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_logs_since_workshop, 2) nt.assert_equal(user_nodes_created_since_workshop, 1) def test_user_osf_account_not_found(self): result_csv = self._create_and_parse_test_file(self.user_not_found_data) user_id = result_csv[1][-4] last_log_date = result_csv[1][-1] user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_id, '') nt.assert_equal(last_log_date, '') nt.assert_equal(user_logs_since_workshop, 0) nt.assert_equal(user_nodes_created_since_workshop, 0) def test_user_found_by_name(self): result_csv = self._create_and_parse_test_file( self.user_exists_by_name_data) user_id = result_csv[1][-4] last_log_date = result_csv[1][-1] user_logs_since_workshop = result_csv[1][-3] user_nodes_created_since_workshop = result_csv[1][-2] nt.assert_equal(user_id, self.user_1.id) nt.assert_equal(last_log_date, '') nt.assert_equal(user_logs_since_workshop, 0) nt.assert_equal(user_nodes_created_since_workshop, 0) def test_form_valid(self): request = RequestFactory().post('/fake_path') data = [ ['none', 'date', 'none', 'none', 'none', 'email', 'none'], [None, '9/1/16', None, None, None, self.user_1.username, None], ] with open('test.csv', 'w') as fp: writer = csv.writer(fp) for row in data: writer.writerow(row) with file('test.csv', mode='rb') as fp: uploaded = SimpleUploadedFile(fp.name, fp.read(), content_type='text/csv') form = WorkshopForm(data={'document': uploaded}) form.is_valid() form.cleaned_data['document'] = uploaded setup_form_view(self.view, request, form) def tearDown(self): if os.path.isfile('test.csv'): os.remove('test.csv')