def test_update_assignments(self): '''It should correctly update the set of country assignments.''' cm1 = TestCommittees.new_committee(name='CM1').id cm2 = TestCommittees.new_committee(name='CM2').id ct1 = TestCountries.new_country(name='CT1').id ct2 = TestCountries.new_country(name='CT2').id ct3 = TestCountries.new_country(name='CT3').id s1 = TestSchools.new_school(name='S1').id s2 = TestSchools.new_school(name='S2').id Assignment.objects.bulk_create([ Assignment(committee_id=cm, country_id=ct, school_id=s1) for ct in [ct1, ct2] for cm in [cm1, cm2] ]) # TODO: Also assert on delegate deletion. updates = [ (cm1, ct1, s1), (cm1, ct2, s1), (cm1, ct3, s1), # ADDED # (cm2, ct1, s1), # DELETED (cm2, ct2, s2), # UPDATED (cm2, ct3, s2), # ADDED ] Assignment.update_assignments(updates) new_assignments = [a[1:] for a in Assignment.objects.all().values_list()] self.assertEquals(set(updates), set(new_assignments))
def test_import(self): '''Test that the admin panel can import Assignments.''' TestUsers.new_superuser(username='******', password='******') self.client.login(username='******', password='******') school = TestSchools.new_school() cm1 = TestCommittees.new_committee(name='SPD') cm2 = TestCommittees.new_committee(name='USS') co1 = TestCountries.new_country(name="Côte d'Ivoire") co2 = TestCountries.new_country(name='Barbara Boxer') f = TestFiles.new_csv([ ['Test School', 'SPD', "Côte d'Ivoire"], ['Test School', 'USS', 'Barbara Boxer'] ]) with closing(f) as f: self.client.post(reverse('admin:core_assignment_load'), {'csv': f}) self.assertTrue(Assignment.objects.filter( school=School.objects.get(name='Test School'), committee=Committee.objects.get(name='SPD'), country=Country.objects.get(name="Côte d'Ivoire") ).exists()) self.assertTrue(Assignment.objects.filter( school=School.objects.get(name='Test School'), committee=Committee.objects.get(name='USS'), country=Country.objects.get(name='Barbara Boxer') ).exists())
def test_import(self): '''Test that the admin panel can import Assignments.''' TestUsers.new_superuser(username='******', password='******') self.client.login(username='******', password='******') school = TestSchools.new_school() cm1 = TestCommittees.new_committee(name='SPD') cm2 = TestCommittees.new_committee(name='USS') co1 = TestCountries.new_country(name="Côte d'Ivoire") co2 = TestCountries.new_country(name='Barbara Boxer') f = TestFiles.new_csv([['Test School', 'SPD', "Côte d'Ivoire"], ['Test School', 'USS', 'Barbara Boxer']]) with closing(f) as f: self.client.post(reverse('admin:core_assignment_load'), {'csv': f}) self.assertTrue( Assignment.objects.filter( school=School.objects.get(name='Test School'), committee=Committee.objects.get(name='SPD'), country=Country.objects.get(name="Côte d'Ivoire")).exists()) self.assertTrue( Assignment.objects.filter( school=School.objects.get(name='Test School'), committee=Committee.objects.get(name='USS'), country=Country.objects.get(name='Barbara Boxer')).exists())
def test_update_assignments(self): '''It should correctly update the set of country assignments.''' cm1 = TestCommittees.new_committee(name='CM1').id cm2 = TestCommittees.new_committee(name='CM2').id ct1 = TestCountries.new_country(name='CT1').id ct2 = TestCountries.new_country(name='CT2').id ct3 = TestCountries.new_country(name='CT3').id s1 = TestSchools.new_school(name='S1').id s2 = TestSchools.new_school(name='S2').id Assignment.objects.bulk_create([ Assignment(committee_id=cm, country_id=ct, school_id=s1) for ct in [ct1, ct2] for cm in [cm1, cm2] ]) # TODO: Also assert on delegate deletion. updates = [ (cm1, ct1, s1, False), (cm1, ct2, s1, False), (cm1, ct3, s1, False), # ADDED # (cm2, ct1, s1), # DELETED (cm2, ct2, s2, False), # UPDATED (cm2, ct3, s2, False), # ADDED ] Assignment.update_assignments(updates) new_assignments = [a[1:] for a in Assignment.objects.all().values_list()] self.assertEquals(set(updates), set(new_assignments))
def test_import(self): '''Test that the admin panel can import delegates. ''' TestUsers.new_superuser(username='******', password='******') self.client.login(username='******', password='******') school = TestSchools.new_school() cm1 = TestCommittees.new_committee(name='SPD') cm2 = TestCommittees.new_committee(name='USS') co1 = TestCountries.new_country(name="Côte d'Ivoire") co2 = TestCountries.new_country(name='Barbara Boxer') Assignment.objects.create(committee=cm1, country=co1, school=school) Assignment.objects.create(committee=cm2, country=co2, school=school) f = TestFiles.new_csv([ ['Name', 'Committee', 'Country', 'School'], ['John Doe', 'SPD', "Côte d'Ivoire", 'Test School'], ['Jane Doe', 'USS', 'Barbara Boxer', 'Test School'], ]) with closing(f) as f: self.client.post(reverse('admin:core_delegate_load'), {'csv': f}) self.assertTrue( Delegate.objects.filter(assignment=Assignment.objects.get( school=School.objects.get(name='Test School'), committee=Committee.objects.get(name='SPD'), country=Country.objects.get(name="Côte d'Ivoire")), name='John Doe').exists()) self.assertTrue( Delegate.objects.filter(assignment=Assignment.objects.get( school=School.objects.get(name='Test School'), committee=Committee.objects.get(name='USS'), country=Country.objects.get(name='Barbara Boxer')), name='Jane Doe').exists())
def test_country_preferences(self): '''It should save a school's country preferences.''' c1 = TestCountries.new_country().id c2 = TestCountries.new_country().id params = self.get_params(country_preferences=[0, c1, c2, 0, c1]) response = self.get_response(params=params) self.assertEqual(response.data['country_preferences'], [c1, c2]) school_id = response.data['id'] school = School.objects.get(id=school_id) self.assertEqual([c1, c2], school.country_preference_ids)
def test_country_preferences(self): '''It should save a school's country preferences.''' c1 = TestCountries.new_country().id c2 = TestCountries.new_country().id params = self.get_params(countrypreferences=[0, c1, c2, 0, c1]) response = self.get_response(params=params) self.assertEqual(response.data['countrypreferences'], [c1, c2]) school_id = response.data['id'] school = School.objects.get(id=school_id) self.assertEqual([c1, c2], school.country_preference_ids)
def test_anonymous_user(self): """Anyone should be able to access a list of all the countries.""" country1 = TestCountries.new_country(name="USA") country2 = TestCountries.new_country(name="China") country3 = TestCountries.new_country(name="Barbara Boxer", special=True) response = self.get_response() self.assertEqual( response.data, [ {"id": country1.id, "special": country1.special, "name": country1.name}, {"id": country2.id, "special": country2.special, "name": country2.name}, {"id": country3.id, "special": country3.special, "name": country3.name}, ], )
def setUp(self): self.user = TestUsers.new_user(username='******', password='******') self.school = TestSchools.new_school(user=self.user) self.country = TestCountries.new_country() self.committee1 = TestCommittees.new_committee() self.committee2 = TestCommittees.new_committee() self.assignment1 = TestAssignments.new_assignment( committee=self.committee1, country=self.country, school=self.school, ) self.assignment2 = TestAssignments.new_assignment( committee=self.committee2, country=self.country, school=self.school, ) self.delegate1 = TestDelegates.new_delegate( assignment=self.assignment1, ) self.delegate2 = TestDelegates.new_delegate( assignment=self.assignment2, name='Trevor Dowds', email='*****@*****.**', summary='Good!' )
def setUp(self): self.user = TestUsers.new_user(username="******", password="******") self.school = TestSchools.new_school(user=self.user) self.committee = TestCommittees.new_committee() self.country = TestCountries.new_country() self.params["committee"] = self.committee.id self.params["school"] = self.school.id self.params["country"] = self.country.id
def setUp(self): self.user = TestUsers.new_user(username='******', password='******') self.school = TestSchools.new_school(user=self.user) self.committee = TestCommittees.new_committee() self.country = TestCountries.new_country() self.params['committee'] = self.committee.id self.params['school'] = self.school.id self.params['country'] = self.country.id
def test_anonymous_user(self): '''Anyone should be able to access a list of all the countries.''' country1 = TestCountries.new_country(name='USA') country2 = TestCountries.new_country(name='China') country3 = TestCountries.new_country(name='Barbara Boxer', special=True) response = self.get_response() self.assertEqual(response.data, [ {'id': country1.id, 'special': country1.special, 'name': country1.name}, {'id': country2.id, 'special': country2.special, 'name': country2.name}, {'id': country3.id, 'special': country3.special, 'name': country3.name}])
def test_anonymous_user(self): '''Fields should be returned when accessed by any user.''' country = TestCountries.new_country() response = self.get_response(country.id) self.assertEqual(response.data, { 'id': country.id, 'name': country.name, 'special': country.special})
def setUp(self): self.user = TestUsers.new_user(username='******', password='******') self.school = TestSchools.new_school(user=self.user) self.country = TestCountries.new_country() self.committee = TestCommittees.new_committee() self.assignment = Assignment.objects.create( committee=self.committee, country=self.country, school=self.school, )
def test_update_country_preferences(self): '''It should filter and replace the school's country preferences.''' s1 = TestSchools.new_school() s2 = TestSchools.new_school() c1 = TestCountries.new_country().id c2 = TestCountries.new_country().id c3 = TestCountries.new_country().id country_ids = [0, c1, c2, c2, 0, c3] self.assertEquals(0, CountryPreference.objects.all().count()) s1.update_country_preferences(country_ids) self.assertEquals([c1, c2, c3], s1.country_preference_ids) s2.update_country_preferences(country_ids) self.assertEquals([c1, c2, c3], s2.country_preference_ids) s1.update_country_preferences([c3, c1]) self.assertEquals([c3, c1], s1.country_preference_ids) self.assertEquals([c1, c2, c3], s2.country_preference_ids)
def test_import(self): '''Test that the admin panel can import delegates. ''' TestUsers.new_superuser(username='******', password='******') self.client.login(username='******', password='******') school = TestSchools.new_school() cm1 = TestCommittees.new_committee(name='SPD') cm2 = TestCommittees.new_committee(name='USS') co1 = TestCountries.new_country(name="Côte d'Ivoire") co2 = TestCountries.new_country(name='Barbara Boxer') Assignment.objects.create(committee=cm1, country=co1, school=school) Assignment.objects.create(committee=cm2, country=co2, school=school) f = TestFiles.new_csv([ ['Name', 'Committee', 'Country', 'School'], ['John Doe', 'SPD', "Côte d'Ivoire", 'Test School'], ['Jane Doe', 'USS', 'Barbara Boxer', 'Test School'], ]) with closing(f) as f: self.client.post(reverse('admin:core_delegate_load'), {'csv': f}) self.assertTrue(Delegate.objects.filter( assignment=Assignment.objects.get( school=School.objects.get(name='Test School'), committee=Committee.objects.get(name='SPD'), country=Country.objects.get(name="Côte d'Ivoire") ), name='John Doe' ).exists()) self.assertTrue(Delegate.objects.filter( assignment=Assignment.objects.get( school=School.objects.get(name='Test School'), committee=Committee.objects.get(name='USS'), country=Country.objects.get(name='Barbara Boxer') ), name='Jane Doe' ).exists())
def setUp(self): self.user = TestUsers.new_user(username='******', password='******') self.school = TestSchools.new_school(user=self.user) self.country = TestCountries.new_country() self.committee1 = TestCommittees.new_committee() self.committee2 = TestCommittees.new_committee() self.committee3 = TestCommittees.new_committee() self.committee4 = TestCommittees.new_committee() self.assignment1 = TestAssignments.new_assignment( school=self.school, country=self.country, commitee=self.committee3 ) self.assignment2 = TestAssignments.new_assignment( school=self.school, country=self.country, committee=self.committee2 ) self.new_assignment = TestAssignments.new_assignment( school=self.school, country=self.country, committee=self.committee3 ) self.faulty_assignment = TestAssignments.new_assignment( country=self.country, committee=self.committee4 ) self.delegate1 = TestDelegates.new_delegate( name="Nathaniel Parke", school=self.school, assignment=self.assignment1 ) self.delegate2 = TestDelegates.new_delegate( name='Trevor Dowds', school=self.school, assignment=self.assignment2 ) self.params = [ {'id': self.delegate1.id, 'assignment': self.new_assignment.id}, {'id': self.delegate2.id, 'assignment': None} ]
def test_update_assignments(self): '''It should correctly update the set of country assignments.''' cm1 = TestCommittees.new_committee(name='CM1') cm2 = TestCommittees.new_committee(name='CM2') ct1 = TestCountries.new_country(name='CT1') ct2 = TestCountries.new_country(name='CT2') ct3 = TestCountries.new_country(name='CT3') s1 = TestSchools.new_school(name='S1') s2 = TestSchools.new_school(name='S2') Assignment.objects.bulk_create([ Assignment(committee_id=cm.id, country_id=ct.id, school_id=s1.id) for ct in [ct1, ct2] for cm in [cm1, cm2] ]) a = Assignment.objects.get(committee_id=cm2.id, country_id=ct2.id) d1 = TestDelegates.new_delegate(school=s1, assignment=a) d2 = TestDelegates.new_delegate(school=s1, assignment=a) # TODO: Also assert on delegate deletion. updates = [ (cm1, ct1, s1, False), (cm1, ct2, s1, False), (cm1, ct3, s1, False), # ADDED # (cm2, ct1, s1), # DELETED (cm2, ct2, s2, False), # UPDATED (cm2, ct3, s2, False), # ADDED ] Assignment.update_assignments(updates) new_assignments = [a[1:] for a in Assignment.objects.all().values_list()] delegates = Delegate.objects.all() updates = [(cm.id, ct.id, s.id, rej) for cm, ct, s, rej in updates] self.assertEquals(set(updates), set(new_assignments)) self.assertEquals(len(delegates), 2)
def setUp(self): self.country = TestCountries.new_country()
def setUp(self): self.country = TestCountries.new_country(name='USA', special=False)
def test_anonymous_user(self): """Fields should be returned when accessed by any user.""" country = TestCountries.new_country() response = self.get_response(country.id) self.assertEqual(response.data, {"id": country.id, "name": country.name, "special": country.special})
def get_test_object(cls): return TestCountries.new_country()