def test_FilterBuilder_get_context_attr__joined(self): kwa = {'joined': Language, 'joined_key': 'id'} fb = FilterBuilder(Post, self.args) payload = Language.id response = fb.get_context_attr('id', kwa) self.assertEqual( payload, response, 'ErrorHandler().get_context_attr does not return \'Language.id\'.')
class FilterBuilderTests(unittest.TestCase): def setUp(self): self.args = { 'name': 'a', 'title': 'b', 'status': 'c', 'created': '2020-01-01T00:00:00', 'page': 1, 'limit': 10, 'order_by': 'id', 'order': 'desc' } self.kwa = {} self.fb = FilterBuilder(Post, self.args) def test_FilterBuilder_get_context_attr__default(self): payload = Post.id response = self.fb.get_context_attr('id', self.kwa) self.assertEqual( payload, response, 'ErrorHandler().get_context_attr does not return \'Post.id\'.') def test_FilterBuilder_get_context_attr__joined(self): kwa = {'joined': Language, 'joined_key': 'id'} fb = FilterBuilder(Post, self.args) payload = Language.id response = fb.get_context_attr('id', kwa) self.assertEqual( payload, response, 'ErrorHandler().get_context_attr does not return \'Language.id\'.') def test_FilterBuilder_set_equals_filter(self): payload = '"Post".name = :name_1' self.fb.set_equals_filter('name') response = str(self.fb.filter[0]) self.assertEqual( payload, response, 'ErrorHandler().set_equals_filter does not return \'"Post".name = :name_1\'.' ) def test_FilterBuilder_set_equals_filters(self): payload_1 = '"Post".name = :name_1' payload_2 = '"Post".status = :status_1' self.fb.set_equals_filters(['name', 'status']) response_1 = str(self.fb.filter[0]) response_2 = str(self.fb.filter[1]) self.assertEqual( payload_1, response_1, 'ErrorHandler().set_equals_filters does not return \'"Post".name = :name_1\'.' ) self.assertEqual( payload_2, response_2, 'ErrorHandler().set_equals_filters does not return \'"Post".status = :status_1\'.' ) def test_FilterBuilder_set_like_filter(self): payload = '"Post".name LIKE :name_1' self.fb.set_like_filter('name') response = str(self.fb.filter[0]) self.assertEqual( payload, response, 'ErrorHandler().set_like_filter does not return \'"Post".name LIKE :name_1\'.' ) def test_FilterBuilder_set_like_filters(self): payload_1 = '"Post".name LIKE :name_1' payload_2 = '"Post".status LIKE :status_1' self.fb.set_like_filters(['name', 'status']) response_1 = str(self.fb.filter[0]) response_2 = str(self.fb.filter[1]) self.assertEqual( payload_1, response_1, 'ErrorHandler().set_like_filter does not return \'"Post".name LIKE :name_1\'.' ) self.assertEqual( payload_2, response_2, 'ErrorHandler().set_like_filter does not return \'"Post".status LIKE :status_1\'.' ) def test_FilterBuilder_set_and_or_filter(self): payload = '"Post".name LIKE :name_1 OR "Post".status LIKE :status_1' self.fb.set_and_or_filter('name', 'or', [{ 'field': 'name', 'type': 'like' }, { 'field': 'status', 'type': 'like' }]) response = str(self.fb.filter[0]) self.assertEqual( payload, response, 'ErrorHandler().set_and_or_filter does not return \'"Post".name LIKE :name_1 OR "Post".type LIKE :type_1\'.' ) def test_FilterBuilder_set_and_or_filter_exception(self): payload = Exception response = None try: self.fb.set_and_or_filter('name', 'or', [{ 'field': 'xxx', 'type': 'like' }, { 'field': 'xxx', 'type': 'like' }]) except Exception as e: response = type(e) self.assertEqual( payload, response, 'ErrorHandler().set_and_or_filter does not return an Exception.') def test_FilterBuilder_set_date_filter(self): payload = '"Post".created >= :created_1' self.fb.set_date_filter('created') response = str(self.fb.filter[0]) self.assertEqual( payload, response, 'ErrorHandler().set_date_filter does not return \'"Post".created >= :created_1\'.' ) def test_FilterBuilder_set_date_filter__exception(self): payload = Exception response = None try: self.fb.set_date_filter('name') except Exception as e: response = type(e) self.assertEqual( payload, response, 'ErrorHandler().set_date_filter does not return an Exception.') def test_FilterBuilder_set_between_dates_filter(self): payload = '"Post".created BETWEEN :created_1 AND :created_2' self.fb.set_between_dates_filter( 'created', compare_date_time_one='2020-01-01T00:00:00', compare_date_time_two='2020-01-01T00:00:00') response = str(self.fb.filter[0]) self.assertEqual( payload, response, 'ErrorHandler().set_between_dates_filter does not return \'"Post".created BETWEEN :created_1 AND :created_2\'.' ) def test_FilterBuilder_set_between_dates_filter__not_between(self): payload = '"Post".created NOT BETWEEN :created_1 AND :created_2' self.fb.set_between_dates_filter( 'created', compare_date_time_one='2020-01-01T00:00:00', compare_date_time_two='2020-01-01T00:00:00', not_between='1') response = str(self.fb.filter[0]) self.assertEqual( payload, response, 'ErrorHandler().set_between_dates_filter does not return \'"Post".created BETWEEN :created_1 AND :created_2\'.' ) def test_FilterBuilder_set_between_dates_filter__exception(self): payload = Exception response = None try: self.fb.set_between_dates_filter( 'created', compare_date_time_one='2020-01-01T00:00:00', compare_date_time_two='xxxx') except Exception as e: response = type(e) self.assertEqual( payload, response, 'ErrorHandler().set_between_dates_filter does not return an Exception.' ) def test_FilterBuilder_get_filter(self): payload = () response = self.fb.get_filter() self.assertEqual(payload, response, 'ErrorHandler().get_filter does not return a tuple.') def test_FilterBuilder_get_page(self): payload = 1 response = self.fb.get_page() self.assertEqual(payload, response, 'ErrorHandler().get_page does not return 1.') def test_FilterBuilder_get_limit(self): payload = 10 response = self.fb.get_limit() self.assertEqual(payload, response, 'ErrorHandler().get_limit does not return 10.') def test_FilterBuilder_get_order_by(self): payload = '"Post".id DESC' response = str(self.fb.get_order_by()[0]) self.assertEqual( payload, response, 'ErrorHandler().get_order_by does not return \'"Post".id DESC\'.') def test_FilterBuilder_set_range_of_dates_filter(self): payload = '"Post".publish_on <= :publish_on_1 AND "Post".expire_on >= :expire_on_1' self.fb.set_range_of_dates_filter() response = str(self.fb.filter[0]) self.assertEqual( payload, response, 'ErrorHandler().set_range_of_dates_filter does not return \'"Post".publish_on <= :publish_on_1 AND "Post".expire_on >= :expire_on_1\'.' ) def tearDown(self): pass