class GenericRelatedFieldTest(APITransactionTestCase): def setUp(self): from nodeconductor.structure.tests.factories import UserFactory self.user = UserFactory(is_staff=True) self.request = APIRequestFactory().get('/') self.request.user = self.user self.field = GenericRelatedField(related_models=get_loggable_models()) self.field.root._context = {'request': self.request} def test_if_related_object_exists_it_is_deserialized(self): from nodeconductor.structure.tests.factories import CustomerFactory customer = CustomerFactory() valid_url = CustomerFactory.get_url(customer) self.assertEqual(self.field.to_internal_value(valid_url), customer) def test_if_related_object_does_not_exist_validation_error_is_raised(self): from nodeconductor.structure.tests.factories import CustomerFactory customer = CustomerFactory() valid_url = CustomerFactory.get_url(customer) customer.delete() self.assertRaises(serializers.ValidationError, self.field.to_internal_value, valid_url) def test_if_user_does_not_have_permissions_for_related_object_validation_error_is_raised(self): from nodeconductor.structure.tests.factories import CustomerFactory customer = CustomerFactory() valid_url = CustomerFactory.get_url(customer) self.user.is_staff = False self.user.save() self.assertRaises(serializers.ValidationError, self.field.to_internal_value, valid_url) def test_if_uuid_is_invalid_validation_error_is_raised(self): invalid_url = 'https://example.com/api/customers/invalid/' self.assertRaises(serializers.ValidationError, self.field.to_internal_value, invalid_url)
def setUp(self): self.staff = UserFactory(is_staff=True) self.owner = UserFactory() self.user = UserFactory() self.customer = CustomerFactory() self.customer.add_user(self.owner, CustomerRole.OWNER) self.url = reverse('customer_image', kwargs={'uuid': self.customer.uuid.hex})
def setUp(self): from nodeconductor.structure.tests.factories import UserFactory self.user = UserFactory(is_staff=True) self.request = APIRequestFactory().get('/') self.request.user = self.user self.field = GenericRelatedField(related_models=get_loggable_models()) self.field.root._context = {'request': self.request}
def change_user(self, **kwargs): user = UserFactory() form_for_data = UserChangeForm(instance=user) post_data = form_for_data.initial post_data.update(kwargs) form = UserChangeForm(instance=user, data=post_data) form.save() user.refresh_from_db() return user
def make_request(self, fields): from nodeconductor.structure.tests.factories import UserFactory request = APIRequestFactory().get('/', {'field': fields}) force_authenticate(request, UserFactory()) response = RestrictedSerializerView.as_view()(request) return response
def test_user_can_update_threshold(self): self.client.force_authenticate(UserFactory(is_staff=True)) response = self.client.put(QuotaFactory.get_url(self.quota), { 'threshold': 1000, }) self.assertEqual(status.HTTP_200_OK, response.status_code, response.data) self.assertEqual(1000, response.data['threshold'], response.data)
def setUp(self): self.link = TestServiceProjectLinkFactory() self.vm1 = TestNewInstanceFactory(service_project_link=self.link) self.vm2 = TestNewInstanceFactory(service_project_link=self.link) self.vm3 = TestNewInstanceFactory(service_project_link=self.link) self.client.force_authenticate(UserFactory(is_staff=True))
def setUp(self): self.user = UserFactory() self.other = UserFactory() self.customer = CustomerFactory() self.customer.add_user(self.user, CustomerRole.OWNER)
def test_authenticated_user_can_access_version(self): user = UserFactory() self.client.force_authenticate(user=user) response = self.client.get(self.version_url) self.assertEqual(response.status_code, status.HTTP_200_OK)