Exemple #1
0
class JiraProviderChangeTest(MockJiraTestMixin, TestCase):
    def setUp(self):
        self.test_provider = ProviderFactory()

    def test_creating_provider_doesnt_create_jira_record(self, mock_JIRA):
        with self.assertRaises(JiraUpdateRecord.DoesNotExist):
            self.jira_record = self.test_provider.jira_records.get(
                update_type=JiraUpdateRecord.PROVIDER_CHANGE)

    def test_provider_notify_jira_of_change_creates_record(self, mock_JIRA):
        self.test_provider.notify_jira_of_change()
        jira_record = self.test_provider.jira_records.get(
            update_type=JiraUpdateRecord.PROVIDER_CHANGE)
        self.assertEqual(self.test_provider, jira_record.provider)

    def test_provider_change_jira_work(self, mock_JIRA):
        self.test_provider.notify_jira_of_change()
        jira_record = self.test_provider.jira_records.get(
            update_type=JiraUpdateRecord.PROVIDER_CHANGE)
        self.assertEqual('', jira_record.jira_issue_key)
        issue_key = self.setup_issue_key(mock_JIRA)
        jira_record.do_jira_work()
        expected_duedate = datetime.date.today() + datetime.timedelta(days=settings.JIRA_DUEIN_DAYS)
        mock_JIRA.return_value.create_issue.assert_called_with(
            description=mock.ANY,
            project={'key': settings.JIRA_SERVICES_PROJECT_KEY},
            issuetype={'name': 'Task'},
            duedate=str(expected_duedate),
            summary="Changed provider from %s" % str(self.test_provider),
        )
        description = mock_JIRA.return_value.create_issue.call_args[1]['description']
        self.assertIn(absolute_url(self.test_provider.get_admin_edit_url()), description)
        self.assertIn(self.test_provider.name_en, description)
        jira_record = JiraUpdateRecord.objects.get(pk=jira_record.pk)
        self.assertEqual(issue_key, jira_record.jira_issue_key)
 def test_phone_number_validation(self):
     with self.assertRaises(ValidationError):
         ProviderFactory(phone_number='9').full_clean()
     with self.assertRaises(ValidationError):
         ProviderFactory(phone_number='ab-cdefgh').full_clean()
     with self.assertRaises(ValidationError):
         ProviderFactory(phone_number='12-3456789').full_clean()
     with self.assertRaises(ValidationError):
         ProviderFactory(phone_number='12345678').full_clean()
     ProviderFactory(phone_number='12-345678').full_clean()
Exemple #3
0
 def test_provider_change_own_data(self):
     # Non-staff can change their own provider
     provider = ProviderFactory(user=self.user)
     # Tweak some data
     provider.name_en = 'Jim-Bob'
     provider.name_ar = 'Ahmed-Bob'
     provider.name_fr = 'Pierre-Bob'
     book = get_export_workbook([provider])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     new_provider = Provider.objects.get(id=provider.id)
     self.assertEqual(provider.name_en, new_provider.name_en)
     self.assertEqual(provider.name_ar, new_provider.name_ar)
     self.assertEqual(provider.name_fr, new_provider.name_fr)
Exemple #4
0
 def test_staff_add_providers(self):
     # Remember, only one provider per user
     self.user.is_staff = True
     self.user.save()
     type1 = ProviderTypeFactory()
     provider1 = ProviderFactory.build(type=type1, user=self.user)  # Doesn't save
     user2 = EmailUserFactory()
     type2 = ProviderTypeFactory()
     provider2 = ProviderFactory.build(type=type2, user=user2)  # Doesn't save
     book = get_export_workbook([provider1, provider2])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     self.assertTrue(Provider.objects.filter(name_en=provider1.name_en).exists())
     self.assertTrue(Provider.objects.filter(name_en=provider2.name_en).exists())
Exemple #5
0
 def test_provider_change_own_data(self):
     # Non-staff can change their own provider
     provider = ProviderFactory(user=self.user)
     # Tweak some data
     provider.name_en = 'Jim-Bob'
     provider.name_ar = 'Ahmed-Bob'
     provider.name_fr = 'Pierre-Bob'
     book = get_export_workbook([provider])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     new_provider = Provider.objects.get(id=provider.id)
     self.assertEqual(provider.name_en, new_provider.name_en)
     self.assertEqual(provider.name_ar, new_provider.name_ar)
     self.assertEqual(provider.name_fr, new_provider.name_fr)
Exemple #6
0
 def test_staff_change_provider(self):
     # Staff can change another user's provider
     self.user.is_staff = True
     self.user.save()
     provider = ProviderFactory()
     # Tweak some data
     provider.name_en = 'Jim-Bob'
     provider.name_ar = 'Ahmed-Bob'
     provider.name_fr = 'Pierre-Bob'
     book = get_export_workbook([provider])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     new_provider = Provider.objects.get(id=provider.id)
     self.assertEqual(provider.name_en, new_provider.name_en)
     self.assertEqual(provider.name_ar, new_provider.name_ar)
     self.assertEqual(provider.name_fr, new_provider.name_fr)
Exemple #7
0
 def test_staff_change_provider_invalid_id(self):
     self.user.is_staff = True
     self.user.save()
     provider = ProviderFactory()
     # Tweak some data
     provider.name_en = 'Jim-Bob'
     provider.name_ar = 'Ahmed-Bob'
     provider.name_fr = 'Pierre-Bob'
     book = get_export_workbook([provider], cell_overwrite_ok=True)
     sheet = book.get_sheet(0)
     sheet.write(r=1, c=0, label='xyz')
     rsp = self.import_book(book)
     self.assertContains(rsp,
                         "id: xyz is not a valid ID",
                         status_code=BAD_REQUEST,
                         msg_prefix=rsp.content.decode('utf-8'))
Exemple #8
0
 def test_staff_change_provider(self):
     # Staff can change another user's provider
     self.user.is_staff = True
     self.user.save()
     provider = ProviderFactory()
     # Tweak some data
     provider.name_en = 'Jim-Bob'
     provider.name_ar = 'Ahmed-Bob'
     provider.name_fr = 'Pierre-Bob'
     book = get_export_workbook([provider])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     new_provider = Provider.objects.get(id=provider.id)
     self.assertEqual(provider.name_en, new_provider.name_en)
     self.assertEqual(provider.name_ar, new_provider.name_ar)
     self.assertEqual(provider.name_fr, new_provider.name_fr)
Exemple #9
0
 def test_staff_change_provider_invalid_id(self):
     self.user.is_staff = True
     self.user.save()
     provider = ProviderFactory()
     # Tweak some data
     provider.name_en = 'Jim-Bob'
     provider.name_ar = 'Ahmed-Bob'
     provider.name_fr = 'Pierre-Bob'
     book = get_export_workbook([provider], cell_overwrite_ok=True)
     sheet = book.get_sheet(0)
     sheet.write(r=1, c=0, label='xyz')
     rsp = self.import_book(book)
     self.assertContains(rsp,
                         "id: xyz is not a valid ID",
                         status_code=BAD_REQUEST,
                         msg_prefix=rsp.content.decode('utf-8'))
 def test_num_beneficiaries_validation(self):
     data = [
         (None, True),  # No value is okay
         (-1, False),  # Range 0-1,000,000
         (0, True),
         (1000000, True),
         (1000001, False),
     ]
     for value, expect_valid in data:
         if expect_valid:
             ProviderFactory(
                 number_of_monthly_beneficiaries=value).full_clean()
         else:
             with self.assertRaises(ValidationError):
                 ProviderFactory(
                     number_of_monthly_beneficiaries=value).full_clean()
    def test_non_staff_sees_all_current_data(self):
        provider = ProviderFactory()
        service1 = ServiceFactory(provider=provider, status=Service.STATUS_CURRENT)
        service2 = ServiceFactory(provider=provider, status=Service.STATUS_CURRENT)
        ServiceFactory(status=Service.STATUS_CURRENT)
        ServiceFactory(provider=provider, status=Service.STATUS_DRAFT)  # Draft - not included
        book = get_export_workbook_for_user(provider.user)
        xlrd_book = save_and_read_book(book)

        # First sheet - providers
        sheet = xlrd_book.get_sheet(0)
        self.assertEqual(2, sheet.nrows - 1)
        # first provider
        values = sheet.row_values(1)
        data = dict(zip(PROVIDER_HEADINGS, values))
        self.assertEqual(provider.id, data['id'])

        # Second sheet - services
        sheet = xlrd_book.get_sheet(1)
        self.assertEqual(3, sheet.nrows - 1)
        values = sheet.row_values(1)
        data = dict(zip(SERVICE_HEADINGS, values))
        self.assertEqual(service1.id, data['id'])
        values = sheet.row_values(2)
        data = dict(zip(SERVICE_HEADINGS, values))
        self.assertEqual(service2.id, data['id'])
 def test_staff_change_nonexistent_provider(self):
     # Staff can change another user's provider
     self.user.is_staff = True
     self.user.save()
     provider = ProviderFactory()
     name_fields = generate_translated_fields('name', False)
     # Tweak some data
     for field in name_fields:
         setattr(provider, field, random_string(10))
     book = get_export_workbook([provider])
     provider_id = provider.id
     provider.delete()
     rsp = self.import_book(book)
     self.assertContains(rsp,
                         "There is no provider with id=%d" % provider_id,
                         status_code=BAD_REQUEST,
                         msg_prefix=rsp.content.decode('utf-8'))
Exemple #13
0
 def test_provider_add_provider(self):
     type = ProviderTypeFactory()
     provider = ProviderFactory.build(type=type, user=self.user)  # Doesn't save
     self.assertFalse(provider.id)
     book = get_export_workbook([provider])
     rsp = self.import_book(book)
     # self.fail(rsp.content.decode('utf-8'))
     self.assertContains(rsp, "Non-staff users may not create new providers",
                         status_code=BAD_REQUEST)
Exemple #14
0
 def test_types_require_no_provider(self):
     provider = ProviderFactory()
     disallow_provider_types = JiraUpdateRecord.SERVICE_CHANGE_UPDATE_TYPES
     for update_type in disallow_provider_types:
         with self.assertRaises(Exception) as cm:
             JiraUpdateRecord.objects.create(update_type=update_type, provider=provider)
         self.assertTrue(
             'must not specify provider' in str(cm.exception),
             msg='Unexpected exception message (%s) for %s' % (str(cm.exception), update_type))
 def test_using_export_url_to_get_export(self):
     provider = ProviderFactory(user=self.user)
     ServiceFactory(provider=provider, status=Service.STATUS_CURRENT)
     url = self.get_export_url()
     rsp = self.client.get(url)
     self.assertEqual(OK, rsp.status_code)
     bits = rsp.content
     errs = validate_and_import_data(self.user, bits)
     self.assertFalse(errs)
    def test_staff_see_all_current_data(self):
        user = EmailUserFactory(is_staff=True)
        provider = ProviderFactory()
        ProviderFactory()
        ServiceFactory(provider=provider, status=Service.STATUS_CURRENT)
        ServiceFactory(provider=provider, status=Service.STATUS_CURRENT)
        ServiceFactory(status=Service.STATUS_CURRENT)
        ServiceFactory(provider=provider, status=Service.STATUS_DRAFT)
        book = get_export_workbook_for_user(user)
        xlrd_book = save_and_read_book(book)

        # First sheet - providers
        sheet = xlrd_book.get_sheet(0)
        self.assertEqual(3, sheet.nrows - 1)

        # Second sheet - services
        sheet = xlrd_book.get_sheet(1)
        self.assertEqual(3, sheet.nrows - 1)
Exemple #17
0
 def test_staff_add_providers(self):
     # Remember, only one provider per user
     self.user.is_staff = True
     self.user.save()
     type1 = ProviderTypeFactory()
     provider1 = ProviderFactory.build(type=type1,
                                       user=self.user)  # Doesn't save
     user2 = EmailUserFactory()
     type2 = ProviderTypeFactory()
     provider2 = ProviderFactory.build(type=type2,
                                       user=user2)  # Doesn't save
     book = get_export_workbook([provider1, provider2])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     self.assertTrue(
         Provider.objects.filter(name_en=provider1.name_en).exists())
     self.assertTrue(
         Provider.objects.filter(name_en=provider2.name_en).exists())
Exemple #18
0
 def test_staff_delete_provider(self):
     # Staff may delete providers
     self.user.is_staff = True
     self.user.save()
     provider = ProviderFactory()
     book = get_export_workbook([provider], cell_overwrite_ok=True)
     blank_out_row_for_testing(book, sheet_num=0, row_num=1)
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     self.assertFalse(Provider.objects.filter(id=provider.id).exists())
Exemple #19
0
 def test_provider_change_password(self):
     # Providers can change their password
     provider = ProviderFactory(user=self.user)
     book = get_export_workbook([provider], cell_overwrite_ok=True)
     password_column = PROVIDER_HEADINGS.index('password')
     set_cell_value(book, 0, 1, password_column, 'new_password')
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     user = authenticate(email=provider.user.email, password='******')
     self.assertEqual(user, self.user)
Exemple #20
0
 def test_staff_add_provider(self):
     type = ProviderTypeFactory()
     self.user.is_staff = True
     self.user.save()
     provider = ProviderFactory.build(type=type, user=self.user)  # Doesn't save
     self.assertFalse(provider.id)
     book = get_export_workbook([provider])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     self.assertTrue(Provider.objects.filter(name_en=provider.name_en).exists())
 def test_location_exported_as_lat_long(self):
     provider = ProviderFactory()
     service1 = ServiceFactory(provider=provider, status=Service.STATUS_CURRENT)
     book = get_export_workbook_for_user(provider.user)
     xlrd_book = save_and_read_book(book)
     sheet = xlrd_book.get_sheet(1)
     values = sheet.row_values(1)
     data = dict(zip(SERVICE_HEADINGS, values))
     self.assertEqual(service1.longitude, data['longitude'])
     self.assertEqual(service1.latitude, data['latitude'])
Exemple #22
0
 def test_provider_delete_provider(self):
     # A provider cannot delete themselves
     provider = ProviderFactory(user=self.user)
     book = get_export_workbook([provider], cell_overwrite_ok=True)
     blank_out_row_for_testing(book, sheet_num=0, row_num=1)
     rsp = self.import_book(book)
     self.assertContains(rsp,
                         "Only staff may delete providers",
                         status_code=BAD_REQUEST,
                         msg_prefix=rsp.content.decode('utf-8'))
Exemple #23
0
 def test_provider_add_provider(self):
     type = ProviderTypeFactory()
     provider = ProviderFactory.build(type=type,
                                      user=self.user)  # Doesn't save
     self.assertFalse(provider.id)
     book = get_export_workbook([provider])
     rsp = self.import_book(book)
     # self.fail(rsp.content.decode('utf-8'))
     self.assertContains(rsp,
                         "Non-staff users may not create new providers",
                         status_code=BAD_REQUEST)
Exemple #24
0
 def test_provider_add_criterion_bad_service(self):
     provider = ProviderFactory(user=self.user)
     criterion1 = SelectionCriterionFactory.build()
     service = criterion1.service
     book = get_export_workbook([provider], None, [criterion1])
     rsp = self.import_book(book)
     self.assertContains(
         rsp,
         "Row 2: service__id: Selection criterion refers to service with ID "
         "or name '%s' that is not in the 2nd sheet" % service.name_en,
         status_code=BAD_REQUEST,
         msg_prefix=rsp.content.decode('utf-8'))
 def test_open_close_as_hh_mm(self):
     provider = ProviderFactory()
     ServiceFactory(provider=provider, status=Service.STATUS_CURRENT,
                    wednesday_close=time(18, 23)
                    )
     book = get_export_workbook_for_user(provider.user)
     xlrd_book = save_and_read_book(book)
     sheet = xlrd_book.get_sheet(1)
     values = sheet.row_values(1)
     data = dict(zip(SERVICE_HEADINGS, values))
     self.assertEqual('', data['sunday_open'])
     self.assertEqual('18:23', data['wednesday_close'])
Exemple #26
0
 def test_provider_delete_another_provider(self):
     # A provider cannot delete others
     provider = ProviderFactory()
     book = get_export_workbook([provider], cell_overwrite_ok=True)
     blank_out_row_for_testing(book, sheet_num=0, row_num=1)
     rsp = self.import_book(book)
     self.assertContains(
         rsp,
         "provider: %d is not a provider this user may delete" %
         provider.id,
         status_code=BAD_REQUEST,
         msg_prefix=rsp.content.decode('utf-8'))
Exemple #27
0
 def test_staff_add_provider(self):
     type = ProviderTypeFactory()
     self.user.is_staff = True
     self.user.save()
     provider = ProviderFactory.build(type=type,
                                      user=self.user)  # Doesn't save
     self.assertFalse(provider.id)
     book = get_export_workbook([provider])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     self.assertTrue(
         Provider.objects.filter(name_en=provider.name_en).exists())
Exemple #28
0
 def test_provider_bad_criterion_id(self):
     provider = ProviderFactory(user=self.user)
     service = ServiceFactory(provider=provider,
                              status=Service.STATUS_CURRENT)
     criterion1 = SelectionCriterionFactory.build(service=service)
     criterion1.id = 'abc'
     book = get_export_workbook([provider], None, [criterion1])
     rsp = self.import_book(book)
     self.assertContains(rsp,
                         "Row 2: id: %s is not a valid ID" % criterion1.id,
                         status_code=BAD_REQUEST,
                         msg_prefix=rsp.content.decode('utf-8'))
 def test_staff_change_providers(self):
     # Staff can change multiple providers
     self.user.is_staff = True
     self.user.save()
     provider1 = ProviderFactory()
     provider2 = ProviderFactory()
     name_fields = generate_translated_fields('name', False)
     # Tweak some data
     for field in name_fields:
         setattr(provider1, field, random_string(10))
     provider2.number_of_monthly_beneficiaries = 1024
     provider2.type = ProviderTypeFactory()
     book = get_export_workbook([provider1, provider2])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     new_provider1 = Provider.objects.get(id=provider1.id)
     for field in name_fields:
         self.assertEqual(getattr(provider1, field),
                          getattr(new_provider1, field))
     new_provider2 = Provider.objects.get(id=provider2.id)
     self.assertEqual(provider2.number_of_monthly_beneficiaries,
                      new_provider2.number_of_monthly_beneficiaries)
Exemple #30
0
 def test_staff_add_bad_provider(self):
     type = ProviderTypeFactory()
     self.user.is_staff = True
     self.user.save()
     provider = ProviderFactory.build(type=type, user=self.user,
                                      number_of_monthly_beneficiaries=-1)  # Doesn't save
     self.assertFalse(provider.id)
     book = get_export_workbook([provider])
     rsp = self.import_book(book)
     self.assertContains(rsp,
                         "Row 2: number_of_monthly_beneficiaries: Ensure this value is "
                         "greater than or equal to 0.",
                         status_code=BAD_REQUEST)
 def test_provider_change_own_data(self):
     # Non-staff can change their own provider
     provider = ProviderFactory(user=self.user)
     name_fields = generate_translated_fields('name', False)
     # Tweak some data
     for field in name_fields:
         setattr(provider, field, random_string(10))
     book = get_export_workbook([provider])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     new_provider = Provider.objects.get(id=provider.id)
     for field in name_fields:
         self.assertEqual(getattr(provider, field),
                          getattr(new_provider, field))
Exemple #32
0
 def test_provider_change_nonexistent_criterion(self):
     provider = ProviderFactory(user=self.user)
     service = ServiceFactory(provider=provider,
                              status=Service.STATUS_CURRENT)
     criterion1 = SelectionCriterionFactory(service=service)
     book = get_export_workbook([provider], None, [criterion1])
     crit_id = criterion1.id
     criterion1.delete()
     rsp = self.import_book(book)
     self.assertContains(rsp,
                         "Row 2: id: No selection criterion with id = %s" %
                         crit_id,
                         status_code=BAD_REQUEST,
                         msg_prefix=rsp.content.decode('utf-8'))
Exemple #33
0
 def test_staff_add_bad_provider(self):
     type = ProviderTypeFactory()
     self.user.is_staff = True
     self.user.save()
     provider = ProviderFactory.build(
         type=type, user=self.user,
         number_of_monthly_beneficiaries=-1)  # Doesn't save
     self.assertFalse(provider.id)
     book = get_export_workbook([provider])
     rsp = self.import_book(book)
     self.assertContains(
         rsp,
         "Row 2: number_of_monthly_beneficiaries: Ensure this value is "
         "greater than or equal to 0.",
         status_code=BAD_REQUEST)
Exemple #34
0
 def test_staff_add_services(self):
     # Staff can add services to any provider
     self.user.is_staff = True
     self.user.save()
     provider = ProviderFactory()
     type = ServiceTypeFactory()
     area = ServiceAreaFactory()
     service = ServiceFactory.build(provider=provider,
                                    type=type,
                                    area_of_service=area)
     book = get_export_workbook([provider], [service])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     new_service = Service.objects.get(name_en=service.name_en)
     self.assertEqual(new_service.name_en, service.name_en)
Exemple #35
0
 def test_provider_bad_criteria(self):
     provider = ProviderFactory(user=self.user)
     service = ServiceFactory(provider=provider,
                              status=Service.STATUS_CURRENT)
     criterion1 = SelectionCriterionFactory(service=service)
     criterion2 = SelectionCriterionFactory(service=service)
     # Change the 2nd one's text before exporting
     criterion2.text_en = criterion2.text_ar = criterion2.text_fr = ''
     book = get_export_workbook([provider], None, [criterion1, criterion2])
     rsp = self.import_book(book)
     self.assertContains(
         rsp,
         "Selection criterion must have text in at least one language",
         status_code=BAD_REQUEST,
         msg_prefix=rsp.content.decode('utf-8'))
 def test_provider_bad_criteria(self):
     provider = ProviderFactory(user=self.user)
     service = ServiceFactory(provider=provider,
                              status=Service.STATUS_CURRENT)
     criterion1 = SelectionCriterionFactory(service=service)
     criterion2 = SelectionCriterionFactory(service=service)
     # Change the 2nd one's text before exporting
     for field in generate_translated_fields('text', False):
         setattr(criterion2, field, '')
     book = get_export_workbook([provider], None, [criterion1, criterion2])
     rsp = self.import_book(book)
     self.assertContains(
         rsp,
         "Selection criterion must have text in at least one language",
         status_code=BAD_REQUEST,
         msg_prefix=rsp.content.decode('utf-8'))
Exemple #37
0
 def test_provider_change_service(self):
     # A provider can change their existing service
     provider = ProviderFactory(user=self.user)
     type = ServiceTypeFactory()
     area = ServiceAreaFactory()
     service = ServiceFactory(provider=provider,
                              type=type,
                              area_of_service=area)
     service.name_en = 'Radiator Repair'
     service.name_fr = 'Le Marseilles'
     book = get_export_workbook([provider], [service])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     new_service = Service.objects.get(id=service.id)
     self.assertEqual(service.name_en, new_service.name_en)
     self.assertEqual(service.name_fr, new_service.name_fr)
Exemple #38
0
 def test_staff_change_nonexistent_provider(self):
     # Staff can change another user's provider
     self.user.is_staff = True
     self.user.save()
     provider = ProviderFactory()
     # Tweak some data
     provider.name_en = 'Jim-Bob'
     provider.name_ar = 'Ahmed-Bob'
     provider.name_fr = 'Pierre-Bob'
     book = get_export_workbook([provider])
     provider_id = provider.id
     provider.delete()
     rsp = self.import_book(book)
     self.assertContains(rsp,
                         "There is no provider with id=%d" % provider_id,
                         status_code=BAD_REQUEST,
                         msg_prefix=rsp.content.decode('utf-8'))
Exemple #39
0
 def test_staff_change_providers(self):
     # Staff can change multiple providers
     self.user.is_staff = True
     self.user.save()
     provider1 = ProviderFactory()
     provider2 = ProviderFactory()
     # Tweak some data
     provider1.name_en = 'Jim-Bob'
     provider1.name_ar = 'Ahmed-Bob'
     provider1.name_fr = 'Pierre-Bob'
     provider2.number_of_monthly_beneficiaries = 1024
     provider2.type = ProviderTypeFactory()
     book = get_export_workbook([provider1, provider2])
     rsp = self.import_book(book)
     self.assertEqual(OK, rsp.status_code, msg=rsp.content.decode('utf-8'))
     new_provider1 = Provider.objects.get(id=provider1.id)
     self.assertEqual(provider1.name_en, new_provider1.name_en)
     self.assertEqual(provider1.name_ar, new_provider1.name_ar)
     self.assertEqual(provider1.name_fr, new_provider1.name_fr)
     new_provider2 = Provider.objects.get(id=provider2.id)
     self.assertEqual(provider2.number_of_monthly_beneficiaries,
                      new_provider2.number_of_monthly_beneficiaries)