Пример #1
0
class FieldStaffFactory(factory.DjangoModelFactory):
    FACTORY_FOR = FieldStaff

    # Staff ID's start at 100
    staff_id = factory.Sequence(lambda n: n + 100)
    name = factory.Sequence(lambda n: 'field staff {}'.format(n))
    phone_number = factory.Sequence(lambda n: get_random_phone_number())
Пример #2
0
class BulkMessageFactory(factory.DjangoModelFactory):
    FACTORY_FOR = models.BulkMessage

    phone_number = factory.Sequence(lambda n: get_random_phone_number())
    message = factory.fuzzy.FuzzyText()
    batch = factory.SubFactory(BatchFactory)
    sms = factory.SubFactory(SMSFactory)
Пример #3
0
 def setUp(self):
     self.NUMBER = get_random_phone_number()
     # Most tests need the number whitelisted, so whitelist by default
     WhitelistFactory(phone_number=self.NUMBER)
     self.election = ElectionFactory(
         polling_start_time=now() - timedelta(hours=1),
         polling_end_time=now() + timedelta(hours=1),
     )
Пример #4
0
class PollingReportFactory(factory.DjangoModelFactory):
    FACTORY_FOR = models.PollingReport

    election = factory.LazyAttribute(get_or_create_election)
    registration_center = factory.SubFactory(RegistrationCenterFactory)
    period_number = FIRST_PERIOD_NUMBER
    num_voters = factory.Sequence(int)
    phone_number = factory.Sequence(lambda n: get_random_phone_number())
Пример #5
0
 def setUp(self):
     self.NUMBER = get_random_phone_number()
     # Most tests need the number whitelisted, so whitelist by default
     WhitelistFactory(phone_number=self.NUMBER)
     self.election = ElectionFactory(
         polling_start_time=now() - timedelta(hours=1),
         polling_end_time=now() + timedelta(hours=1),
     )
Пример #6
0
 def test_numbers_unique(self):
     number1 = get_random_phone_number()
     number2 = str(1 + long(number1))
     reg = RegistrationCenterFactory()
     StaffPhone.objects.create(phone_number=number1, registration_center=reg)
     StaffPhone.objects.create(phone_number=number2, registration_center=reg)
     obj = StaffPhone(phone_number=number2, registration_center=reg)
     with self.assertRaises(ValidationError):
         obj.clean()
Пример #7
0
 def test_search_phone(self):
     number = get_random_phone_number()
     target = FieldStaffFactory(phone_number=number, suspended=False)
     for i in range(2):
         FieldStaffFactory()
     url = reverse('browse_fieldstaff') + "?q=%s" % number
     rsp = self.client.get(url)
     object_list = rsp.context['object_list']
     self.assertEqual(1, len(object_list))
     self.assertIn(target, object_list)
Пример #8
0
 def test_create(self):
     data = {
         'name': 'Fred',
         'phone_number': get_random_phone_number(),
         'staff_id': 892,
         'suspended': False,
     }
     url = reverse('add_fieldstaff')
     rsp = self.client.post(url, data=data)
     self.assertRedirects(rsp, reverse('browse_fieldstaff'))
Пример #9
0
 def test_search_phone(self):
     number = get_random_phone_number()
     target = FieldStaffFactory(phone_number=number, suspended=False)
     for i in range(2):
         FieldStaffFactory()
     url = reverse('browse_fieldstaff') + "?q=%s" % number
     rsp = self.client.get(url)
     object_list = rsp.context['object_list']
     self.assertEqual(1, len(object_list))
     self.assertIn(target, object_list)
Пример #10
0
 def test_create(self):
     data = {
         'name': 'Fred',
         'phone_number': get_random_phone_number(),
         'staff_id': 892,
         'suspended': False,
     }
     url = reverse('add_fieldstaff')
     rsp = self.client.post(url, data=data)
     self.assertRedirects(rsp, reverse('browse_fieldstaff'))
Пример #11
0
 def test_create_bad(self):
     data = {
         'name': 'Fred',
         'phone_number': get_random_phone_number(),
         'staff_id': 'wzyw',
         'suspended': False,
     }
     url = reverse('add_fieldstaff')
     rsp = self.client.post(url, data=data)
     self.assertEqual(400, rsp.status_code)
     self.assertFalse(FieldStaff.objects.filter(name='Fred').exists())
Пример #12
0
 def test_numbers_unique(self):
     number1 = get_random_phone_number()
     number2 = str(1 + long(number1))
     reg = RegistrationCenterFactory()
     StaffPhone.objects.create(phone_number=number1,
                               registration_center=reg)
     StaffPhone.objects.create(phone_number=number2,
                               registration_center=reg)
     obj = StaffPhone(phone_number=number2, registration_center=reg)
     with self.assertRaises(ValidationError):
         obj.clean()
Пример #13
0
 def setUp(self):
     self.number = get_random_phone_number()
     self.center = RegistrationCenterFactory()
     self.citizen = CitizenFactory()
     self.staffphone = StaffPhone.objects.create(phone_number=self.number,
                                                 registration_center=self.center)
     self.conn = self.create_connection(data={'identity': self.number})
     self.good_nid = self.citizen.national_id
     self.bad_nid = get_random_number_string(length=constants.NID_LENGTH)
     self.short_nid = get_random_number_string(length=constants.NID_LENGTH - 1)
     self.fields = {'to_addr': settings.REGISTRATION_SHORT_CODE}
Пример #14
0
 def test_create_bad(self):
     data = {
         'name': 'Fred',
         'phone_number': get_random_phone_number(),
         'staff_id': 'wzyw',
         'suspended': False,
     }
     url = reverse('add_fieldstaff')
     rsp = self.client.post(url, data=data)
     self.assertEqual(400, rsp.status_code)
     self.assertFalse(FieldStaff.objects.filter(name='Fred').exists())
Пример #15
0
 def setUp(self):
     self.number = get_random_phone_number()
     self.center = RegistrationCenterFactory()
     self.citizen = CitizenFactory()
     self.staffphone = StaffPhone.objects.create(
         phone_number=self.number, registration_center=self.center)
     self.conn = self.create_connection(data={'identity': self.number})
     self.good_nid = self.citizen.national_id
     self.bad_nid = get_random_number_string(length=constants.NID_LENGTH)
     self.short_nid = get_random_number_string(length=constants.NID_LENGTH -
                                               1)
     self.fields = {'to_addr': settings.REGISTRATION_SHORT_CODE}
Пример #16
0
 def test_import_number_twice_works(self):
     "Importing a number that is already in list shouldn't cause an error"
     number = get_random_phone_number()
     self.factory(phone_number=number)
     file_content = b"%s" % number
     blackwhitelist_file = ContentFile(file_content, name='bw.txt')
     data = {'import_file': blackwhitelist_file}
     rsp = self.client.post(self.url, data=data)
     # Assert that we redirect
     self.assertEqual(302, rsp.status_code)
     bwlist = self.model.objects.values_list('phone_number', flat=True)
     self.assertEqual(len(bwlist), 1)
     self.assertIn(number, bwlist)
Пример #17
0
 def test_import_number_twice_works(self):
     "Importing a number that is already in list shouldn't cause an error"
     number = get_random_phone_number()
     self.factory(phone_number=number)
     file_content = b"%s" % number
     blackwhitelist_file = ContentFile(file_content, name='bw.txt')
     data = {'import_file': blackwhitelist_file}
     rsp = self.client.post(self.url, data=data)
     # Assert that we redirect
     self.assertEqual(302, rsp.status_code)
     bwlist = self.model.objects.values_list('phone_number', flat=True)
     self.assertEqual(len(bwlist), 1)
     self.assertIn(number, bwlist)
Пример #18
0
 def test_update(self):
     staff = FieldStaffFactory(suspended=False)
     data = {
         'name': 'Fred',
         'phone_number': get_random_phone_number(),
         'staff_id': 892,
         'suspended': True,
     }
     url = reverse('edit_fieldstaff', kwargs={'pk': staff.pk})
     self.client.post(url, data=data)
     new_staff = FieldStaff.objects.get(pk=staff.pk)
     self.assertEqual(data['name'], new_staff.name)
     self.assertEqual(data['phone_number'], new_staff.phone_number)
     self.assertEqual(data['staff_id'], new_staff.staff_id)
     self.assertTrue(new_staff.suspended)
Пример #19
0
 def test_update(self):
     staff = FieldStaffFactory(suspended=False)
     data = {
         'name': 'Fred',
         'phone_number': get_random_phone_number(),
         'staff_id': 892,
         'suspended': True,
     }
     url = reverse('edit_fieldstaff', kwargs={'pk': staff.pk})
     self.client.post(url, data=data)
     new_staff = FieldStaff.objects.get(pk=staff.pk)
     self.assertEqual(data['name'], new_staff.name)
     self.assertEqual(data['phone_number'], new_staff.phone_number)
     self.assertEqual(data['staff_id'], new_staff.staff_id)
     self.assertTrue(new_staff.suspended)
Пример #20
0
 def test_valid_form(self):
     # with all combinations of line endings (\r\n, \n, \r)
     numbers = [get_random_phone_number() for i in range(4)]
     punctuated_numbers = [format_phone_number(number)
                           for number in numbers]
     file_content = b"""%s\r\n%s\n \n%s\r%s""" % (
         punctuated_numbers[0],
         punctuated_numbers[1],
         punctuated_numbers[2],
         punctuated_numbers[3],
     )
     blackwhitelist_file = ContentFile(file_content, name='bw.txt')
     data = {'import_file': blackwhitelist_file}
     rsp = self.client.post(self.url, data=data)
     # Assert that we redirect
     self.assertEqual(302, rsp.status_code)
     bwlist = self.model.objects.values_list('phone_number', flat=True)
     for number in numbers:
         self.assertIn(number, bwlist)
     self.assertEqual(len(bwlist), 4)
Пример #21
0
 def test_valid_form(self):
     # with all combinations of line endings (\r\n, \n, \r)
     numbers = [get_random_phone_number() for i in range(4)]
     punctuated_numbers = [
         format_phone_number(number) for number in numbers
     ]
     file_content = b"""%s\r\n%s\n \n%s\r%s""" % (
         punctuated_numbers[0],
         punctuated_numbers[1],
         punctuated_numbers[2],
         punctuated_numbers[3],
     )
     blackwhitelist_file = ContentFile(file_content, name='bw.txt')
     data = {'import_file': blackwhitelist_file}
     rsp = self.client.post(self.url, data=data)
     # Assert that we redirect
     self.assertEqual(302, rsp.status_code)
     bwlist = self.model.objects.values_list('phone_number', flat=True)
     for number in numbers:
         self.assertIn(number, bwlist)
     self.assertEqual(len(bwlist), 4)
Пример #22
0
 def test_add_dupe_shows_form_error(self):
     number = get_random_phone_number()
     self.factory(phone_number=number)
     f = self.form(data={'phone_number': number})
     self.assertFalse(f.is_valid())
     self.assertIn('Duplicate value for phone number', f.errors.values()[0])
Пример #23
0
 def test_cleans_phone_number(self):
     number = get_random_phone_number()
     punctuated_number = format_phone_number(number)
     f = self.form(data={'phone_number': punctuated_number})
     self.assertTrue(f.is_valid(), f.errors)
     self.assertEqual(f.cleaned_data['phone_number'], number)
Пример #24
0
 def test_cleans_phone_number(self):
     number = get_random_phone_number()
     punctuated_number = format_phone_number(number)
     f = self.form(data={'phone_number': punctuated_number})
     self.assertTrue(f.is_valid(), f.errors)
     self.assertEqual(f.cleaned_data['phone_number'], number)
Пример #25
0
 def setUp(self):
     self.number = get_random_phone_number()
Пример #26
0
 def test_add_dupe_shows_form_error(self):
     number = get_random_phone_number()
     self.factory(phone_number=number)
     f = self.form(data={'phone_number': number})
     self.assertFalse(f.is_valid())
     self.assertIn('Duplicate value for phone number', f.errors.values()[0])
Пример #27
0
 def setUp(self):
     self.number = get_random_phone_number()
Пример #28
0
class StaffPhoneFactory(factory.DjangoModelFactory):
    FACTORY_FOR = models.StaffPhone

    registration_center = factory.SubFactory(RegistrationCenterFactory)
    phone_number = factory.Sequence(lambda n: get_random_phone_number())