def change_customer(self, **kwargs): site = AdminSite() model_admin = structure_admin.CustomerAdmin(structure_models.Customer, site) request = MockRequest() request.user = self.created_by form_for_data = model_admin.get_form(request)(instance=self.customer) post_data = form_for_data.initial dt_now = datetime.now() dt_date = dt_now.strftime("%Y-%m-%d") dt_time = dt_now.strftime("%H:%M:%S") post_data.update( dict(accounting_start_date_0=dt_date, accounting_start_date_1=dt_time)) post_data.update(kwargs) form = model_admin.get_form(request)(instance=self.customer, data=post_data) form.save() self.customer.refresh_from_db() return self.customer
def test_customer_deleting_is_possible_only_if_related_project_is_removed(self): site = AdminSite() model_admin = structure_admin.CustomerAdmin(structure_models.Customer, site) project = factories.ProjectFactory(customer=self.customer) request = MockRequest() queryset = structure_models.Customer.objects.filter(pk=self.customer.id) self.assertRaises( ProtectedError, model_admin.delete_queryset, request, queryset ) project_id = project.id project.delete() # A project exists in DB because we use soft-delete for projects. self.assertTrue( structure_models.Project.structure_objects.filter(pk=project_id).exists() ) model_admin.delete_queryset(request, queryset) self.assertRaises( structure_models.Customer.DoesNotExist, self.customer.refresh_from_db )