def test_no_name(self): val = 'ref {table1.col1 > table2.col2}' res = ref_long.parseString(val, parseAll=True) self.assertEqual(res[0].type, '>') self.assertEqual(res[0].table1, 'table1') self.assertEqual(res[0].col1, 'col1') self.assertEqual(res[0].table2, 'table2') self.assertEqual(res[0].col2, 'col2')
def test_name(self) -> None: val = 'ref\nname\n{\ntable1.col1 > table2.col2\n}' res = ref_long.parseString(val, parseAll=True) self.assertEqual(res[0].type, '>') self.assertEqual(res[0].table1, 'table1') self.assertEqual(res[0].col1, 'col1') self.assertEqual(res[0].table2, 'table2') self.assertEqual(res[0].col2, 'col2') self.assertEqual(res[0].name, 'name')
def test_comment_above(self): val = '//comment above\nref name {\ntable1.col1 > table2.col2\n}' res = ref_long.parseString(val, parseAll=True) self.assertEqual(res[0].type, '>') self.assertEqual(res[0].table1, 'table1') self.assertEqual(res[0].col1, 'col1') self.assertEqual(res[0].table2, 'table2') self.assertEqual(res[0].col2, 'col2') self.assertEqual(res[0].name, 'name') self.assertEqual(res[0].comment, 'comment above')
def test_with_settings(self): val = 'ref name {\ntable1.col1 > table2.col2 [update: cascade, delete: restrict]\n}' res = ref_long.parseString(val, parseAll=True) self.assertEqual(res[0].type, '>') self.assertEqual(res[0].table1, 'table1') self.assertEqual(res[0].col1, 'col1') self.assertEqual(res[0].table2, 'table2') self.assertEqual(res[0].col2, 'col2') self.assertEqual(res[0].name, 'name') self.assertEqual(res[0].on_update, 'cascade') self.assertEqual(res[0].on_delete, 'restrict')
def test_comment_both(self): val = '//comment above\nref name {\ntable1.col1 > table2.col2 //comment after\n}' res = ref_long.parseString(val, parseAll=True) self.assertEqual(res[0].type, '>') self.assertEqual(res[0].table1, 'table1') self.assertEqual(res[0].col1, 'col1') self.assertEqual(res[0].table2, 'table2') self.assertEqual(res[0].col2, 'col2') self.assertEqual(res[0].name, 'name') self.assertEqual(res[0].comment, 'comment after') val2 = '//comment above\nref name {\ntable1.col1 > table2.col2 [update: cascade, delete: restrict] //comment after\n}' res2 = ref_long.parseString(val2, parseAll=True) self.assertEqual(res2[0].type, '>') self.assertEqual(res2[0].table1, 'table1') self.assertEqual(res2[0].col1, 'col1') self.assertEqual(res2[0].table2, 'table2') self.assertEqual(res2[0].col2, 'col2') self.assertEqual(res2[0].name, 'name') self.assertEqual(res2[0].on_update, 'cascade') self.assertEqual(res2[0].on_delete, 'restrict') self.assertEqual(res2[0].comment, 'comment after')