def test_missing_virtual_field_execution_attribute_error( self, admin_client): """ Error happens on wrong virtual field name """ article = ArticleFactory() view = ArticleListView() view.fields = ['title', 'description', 'published', 'broken'] view.get_broken_field = lambda obj: obj.unknown_field exc = pytest.raises(AttributeError, view.get_field_value, 'broken', article) assert str(exc.value) == \ "'Article' object has no attribute 'unknown_field'", \ exc.value.message
def test_virtual_field(self, admin_client): """ Virtual field displayed in ListView """ article = ArticleFactory() view = ArticleListView() view.fields = ['title', 'description', 'published', 'category'] response = self._request(admin_client) self._assert_list_items_len(response, 1) item = response.context_data['list_items'][0] assert item[0]['value'] == article.title assert item[1]['value'] == article.description assert item[3]['value'] == article.category.name
def test_missing_virtual_field(self, admin_client): """ Error happens on wrong virtual field name """ article = ArticleFactory() # noqa view = ArticleListView() view.fields = ['title', 'description', 'published', 'virtual_field'] response = self._request(admin_client) search_virtual_field = False for field in response.context_data['list_items'][0]: if field['type'] == 'field' and 'virtual_field' in field['field']: search_virtual_field = True assert search_virtual_field is False