Coverage for tests / unit / fuzzer / fengine / materializer / utils / test_output_utils.py: 100%

16 statements  

« prev     ^ index     » next       coverage.py v7.13.4, created at 2026-03-18 23:20 -0400

1import unittest 

2 

3from graphqler.fuzzer.engine.materializers.utils.materialization_utils import is_valid_object_materialization, remove_consecutive_characters 

4 

5 

6class TestOutputUtils(unittest.TestCase): 

7 def test_is_valid_object_materialization(self): 

8 self.assertTrue(is_valid_object_materialization("abc {}") is False) 

9 self.assertTrue(is_valid_object_materialization("abc(filter:1) {}") is False) 

10 self.assertTrue(is_valid_object_materialization("abc(filter: {def: 123}) {def }") is True) 

11 self.assertTrue(is_valid_object_materialization("abc {def}") is True) 

12 self.assertTrue(is_valid_object_materialization("abc {, , ,}") is False) 

13 self.assertTrue(is_valid_object_materialization("abc {def, def, def}") is True) 

14 self.assertTrue( 

15 is_valid_object_materialization( 

16 'cards(filter: {status_type: "C223828YUY",},) {expiration_date,id,masked_card_number,, ,needs_activation,projected_arrival_date,status_type,temporary,uuid,, ,virtual,},, ,' 

17 ) 

18 is True 

19 ) 

20 self.assertTrue(is_valid_object_materialization("rewards {credit_builder {rewards_hub_screen}}")) 

21 self.assertTrue(is_valid_object_materialization("enrollment_screen{body,footer_text_markdown,image_url,title,}")) 

22 

23 def test_remove_consecutive(self): 

24 assert remove_consecutive_characters("aaabbbccc", "a") == "abbbccc" 

25 assert remove_consecutive_characters("hellooo!!!", "o") == "hello!!!"