def test_mixed_error(): with pytest.raises(LiquidSyntaxError): parse_mixed('`', LiquidCode()) node = NodeVoid(name='void', attrs='', code=None, shared_code=LiquidCode()) with pytest.raises(LiquidSyntaxError): node.try_mixed('`')
def liqparser(): precode = LiquidCode() code = LiquidCode() stream = LiquidStream.from_string("abcde") return LiquidParser(stream=stream, shared_code=precode, code=code, filename='', prev=None, config=LiquidConfig(mode='compact', loglevel='detail', include='', extends=None))
def test_empty_config(): code = LiquidCode() node = NodeConfig(name='config', attrs='', code=code, shared_code=LiquidCode()) with pytest.raises(LiquidSyntaxError): node.start() node.attrs = 'a' with pytest.raises(LiquidSyntaxError): node.start() node.attrs = 'a="1' with pytest.raises(LiquidSyntaxError): node.start()
def test_parser_init(): precode = LiquidCode() code = LiquidCode() stream = LiquidStream.from_string("abcde") lp = LiquidParser(stream=stream, shared_code=precode, code=code, prev=None, config=None, filename='') assert lp.stream is stream assert lp.config is None assert lp.context.stacks == [] assert lp.shared_code is precode assert lp.code is code assert lp.endtag is None
def test_empty_literal(): code = LiquidCode() node = NodeLiquidLiteral(attrs='', code=code, shared_code=LiquidCode()) assert node.parse_node() is None assert str(node.code) == ''
def test_mixed(mixed, expected): assert parse_mixed(mixed, LiquidCode()) == expected
def test_get_line(): code = LiquidCode() shared = LiquidCode() code.add_code(shared) shared.add_line('') shared.add_line('###### SHARED CODE STARTED ######') shared.add_line('code0_shared') code.add_line('###### SHARED CODE ENDED ######') code.add_line('') for i in range(3): code.add_line(f"code0_line_{i}") code1 = LiquidCode() shared1 = LiquidCode() code1.add_code(shared1) code1.add_line('###### SHARED CODE ENDED ######') code1.add_line('') code.add_code(code1) for i in range(3): code1.add_line(f"code1_line_{i}") shared1.add_line('') shared1.add_line('###### SHARED CODE STARTED ######') shared1.add_line("code1_shared") #print(str(code)) """ 0. <- code.shared 1. ###### SHARED CODE STARTED ###### <- code.shared 2. code0_shared <- code.shared 3. ###### SHARED CODE ENDED ###### <- code 4. <- code 5. code0_line_0 <- code 6. code0_line_1 <- code 7. code0_line_2 <- code 8. <- code1.shared 9. ###### SHARED CODE STARTED ###### <- code1.shared 10. code1_shared <- code1.shared 11. ###### SHARED CODE ENDED ###### <- code1 12. <- code1 13. code1_line_0 <- code1 14. code1_line_1 <- code1 15. code1_line_2 <- code1 """ assert str(code.get_line(0)) == "\n" assert str(code.get_line(1)) == "###### SHARED CODE STARTED ######\n" assert str(code.get_line(2)) == "code0_shared\n" assert str(code.get_line(3)) == "###### SHARED CODE ENDED ######\n" assert str(code.get_line(4)) == "\n" assert str(code.get_line(5)) == "code0_line_0\n" assert str(code.get_line(6)) == "code0_line_1\n" assert str(code.get_line(7)) == "code0_line_2\n" assert str(code.get_line(8)) == "\n" assert str(code.get_line(9)) == "###### SHARED CODE STARTED ######\n" assert str(code.get_line(10)) == "code1_shared\n" assert str(code.get_line(11)) == "###### SHARED CODE ENDED ######\n" assert str(code.get_line(12)) == "\n" assert str(code.get_line(13)) == "code1_line_0\n" assert str(code.get_line(14)) == "code1_line_1\n" assert str(code.get_line(15)) == "code1_line_2\n"
def test_add_code(): code = LiquidCode(1) subcode = LiquidCode() code.add_code(subcode) subcode.add_line('1') subcode.indent() subcode.add_line('2') subcode.dedent() subcode.add_line('3') assert ' 1' in str(code).splitlines() assert ' 2' in str(code).splitlines() assert ' 3' in str(code).splitlines()
def test_code_tag(): code = LiquidCode(1) for i in range(3): with suppress(LiquidCodeTagExists), code.tag('unique') as tagged: tagged.add_line('Some unique shared codes') assert str(code).count(' Some unique shared codes') == 1
def test_code_init(): code = LiquidCode() assert code.ndent == 0 assert code.tags == {}
def test_get_line2(): # code in code code1 = LiquidCode() code2 = LiquidCode() code3 = LiquidCode() code1.add_line("0") code1.add_line("1") code1.add_line("2") code1.add_code(code2) code2.add_line("3") code2.add_line("4") code2.add_line("5") code2.add_code(code3) code3.add_line("6") code3.add_line("7") code2.add_line("8") code2.add_line("9") code1.add_line("10") assert str(code1.get_line(0)) == "0\n" assert str(code1.get_line(1)) == "1\n" assert str(code1.get_line(2)) == "2\n" assert str(code1.get_line(3)) == "3\n" assert str(code1.get_line(4)) == "4\n" assert str(code1.get_line(5)) == "5\n" assert str(code1.get_line(6)) == "6\n" assert str(code1.get_line(7)) == "7\n" assert str(code1.get_line(8)) == "8\n" assert str(code1.get_line(9)) == "9\n" assert str(code1.get_line(10)) == "10\n"