def test_direction_not_provided(self, session): query = session.query(Bar) order_by = [{'field': 'name'}] with pytest.raises(BadSortFormat) as err: apply_sort(query, order_by) expected_error = '`field` and `direction` are mandatory attributes.' assert expected_error == error_value(err)
def test_invalid_direction(self, session): query = session.query(Bar) order_by = [{'field': 'name', 'direction': 'invalid_direction'}] with pytest.raises(BadSortFormat) as err: apply_sort(query, order_by) expected_error = 'Direction `invalid_direction` not valid.' assert expected_error == error_value(err)
def test_wrong_sort_format(self, session, sort): query = session.query(Bar) order_by = [sort] with pytest.raises(BadSortFormat) as err: apply_sort(query, order_by) expected_error = 'Sort spec `{}` should be a dictionary.'.format(sort) assert expected_error == error_value(err)
def test_field_not_provided(self, session): query = session.query(Bar) load_spec = [{}] with pytest.raises(BadLoadFormat) as err: apply_loads(query, load_spec) expected_error = '`fields` is a mandatory attribute.' assert expected_error == error_value(err)
def test_wrong_spec_format(self, session, spec): query = session.query(Bar) load_spec = [spec] with pytest.raises(BadLoadFormat) as err: apply_loads(query, load_spec) expected_error = 'Load spec `{}` should be a dictionary.'.format(spec) assert expected_error == error_value(err)
def test_wrong_page_size(self, session, page_number, page_size): query = session.query(Bar) with pytest.raises(InvalidPage) as err: apply_pagination(query, page_number, page_size) expected_error = 'Page size should not be negative: {}'.format( page_size) assert error_value(err) == expected_error
def test_invalid_field(self, session): query = session.query(Bar) order_by = [{'field': 'invalid_field', 'direction': 'asc'}] with pytest.raises(FieldNotFound) as err: apply_sort(query, order_by) expected_error = ( "Model <class 'test.models.Bar'> has no column `invalid_field`.") assert expected_error == error_value(err)
def test_invalid_field(self, session): query = session.query(Bar) load_spec = [{'fields': ['invalid_field']}] with pytest.raises(FieldNotFound) as err: apply_loads(query, load_spec) expected_error = ( "Model <class 'test.models.Bar'> has no column `invalid_field`.") assert expected_error == error_value(err)
def test_wrong_page_number_with_no_results(self, session, page_number, page_size): query = session.query(Bar) with pytest.raises(InvalidPage) as err: apply_pagination(query, page_number, page_size) expected_error = 'Page number should be positive: {}'.format( page_number) assert error_value(err) == expected_error