def setUp(self):
     self.ctest = Test()
     self.check_ok = [
         {'R0': {'$xavp(v0)': [{'k0': [1],
                                'k1': ['a', 'b', 'fuckthisshit']},
                               {'k0': [1, 2], 'k1': ['a', ]},
                               ],
                 'fU': 'testpep',
                 }},
         {'R1': {'$xavp(v0)': [{'k0': [1, 2]}]}},
     ]
     self.check_ko = [
         {'R0': {'$xavp(v0)': [{'k0': ['a', 'b']}]}},
     ]
     self.scen_ko = [
         {'R0': {'$xavp(v0[0]=>k0[*])': ['a']}},
     ]
     self.scen_noxavp = [
         {'R0': {'fU': 'testpep'}},
         {'R1': {}},
     ]
     self.scen = [
         {'R0': {'$xavp(v0[0]=>k0[0])': 1,
                 '$xavp(v0[0]=>k1[0])': 'a',
                 '$xavp(v0[0]=>k1[2])': '^f',
                 '$var(no)': 'None',
                 '$xavp(nono=>koko)': 'None',
                 '$xavp(v0=>k10)': 'None',
                 '$xavp(v0[1]=>k0[1])': '\d+',
                 '$xavp(v0[0]=>k1[*])': [1],
                 '$xavp(v0[0]=>k1[*])': ['a', 'b', 'fuckthisshit']}
          },
         {'R1': {'$xavp(v0[1]=>k0[0])': 1}},
     ]
class TestCheckSipOut(unittest.TestCase):

    def setUp(self):
        self.ctest = Test()
        self.msg = load_yaml('./tests/fixtures/sip_out.yml')

    def testSipOut(self):
        sip_out = load_yaml('./tests/fixtures/test_sip_out.yml')
        check_sip_out(sip_out, self.msg, self.ctest)
        self.assertFalse(self.ctest.isError())
class TestCheckSipIn(unittest.TestCase):

    def setUp(self):
        self.ctest = Test()
        self.msg = open('./tests/fixtures/sip_in.txt', 'r').read()

    def testSipIn(self):
        sip_in = load_yaml('./tests/fixtures/test_sip_in.yml')
        check_sip(sip_in, self.msg, self.ctest)
        self.assertFalse(self.ctest.isError())
class TestJson(unittest.TestCase):

    def setUp(self):
        self.ctest = Test()

    def testFail(self):
        check = load_json('./tests/fixtures/fail.json')
        scen = load_yaml('./tests/fixtures/scen_fail.yml')
        check_flow(scen['flow'], check['flow'], self.ctest)
        tap = str(self.ctest)
        self.assertTrue(self.ctest.isError(), tap)
        self.assertIsNotNone(not_ok.search(tap), tap)
class TestCheckFlowVars(unittest.TestCase):

    def setUp(self):
        self.ctest = Test()
        self.check_ok = [
            {'R0': {'$xavp(v0)': [{'k0': [1],
                                   'k1': ['a', 'b', 'fuckthisshit']},
                                  {'k0': [1, 2], 'k1': ['a', ]},
                                  ],
                    'fU': 'testpep',
                    }},
            {'R1': {'$xavp(v0)': [{'k0': [1, 2]}]}},
        ]
        self.check_ko = [
            {'R0': {'$xavp(v0)': [{'k0': ['a', 'b']}]}},
        ]
        self.scen_ko = [
            {'R0': {'$xavp(v0[0]=>k0[*])': ['a']}},
        ]
        self.scen_noxavp = [
            {'R0': {'fU': 'testpep'}},
            {'R1': {}},
        ]
        self.scen = [
            {'R0': {'$xavp(v0[0]=>k0[0])': 1,
                    '$xavp(v0[0]=>k1[0])': 'a',
                    '$xavp(v0[0]=>k1[2])': '^f',
                    '$var(no)': 'None',
                    '$xavp(nono=>koko)': 'None',
                    '$xavp(v0=>k10)': 'None',
                    '$xavp(v0[1]=>k0[1])': '\d+',
                    '$xavp(v0[0]=>k1[*])': [1],
                    '$xavp(v0[0]=>k1[*])': ['a', 'b', 'fuckthisshit']}
             },
            {'R1': {'$xavp(v0[1]=>k0[0])': 1}},
        ]

    def testXAvp(self):
        data = self.check_ok[0]['R0']['$xavp(v0)']
        xavp = XAvp('$xavp(v0)', data)

        self.assertEqual(xavp.get('$xavp(v0=>k0)'), 1)
        self.assertEqual(
            xavp.get('$xavp(v0[0]=>k1[*])'), ['a', 'b', 'fuckthisshit'])
        self.assertEqual(xavp.get('$xavp(v0[1]=>k0[1])'), 2)
        self.assertEqual(xavp.get('$xavp(v0[1]=>k1[*])'), ['a'])

    def testFlow_noxavp(self):
        check_flow(self.scen_noxavp, self.check_ok, self.ctest)
        self.assertFalse(self.ctest.isError())

    def testFlowVars_noxavp(self):
        check_flow_vars(
            'RO', self.scen_noxavp[0]['R0'],
            self.check_ok[0]['R0'], self.ctest)
        self.assertFalse(self.ctest.isError())

    def testFlowVars_xavp(self):
        check_flow_vars(
            'RO', self.scen[0]['R0'],
            self.check_ok[0]['R0'], self.ctest)
        self.assertFalse(self.ctest.isError())

    def testFlow_fail(self):
        check_flow(self.scen_ko, self.check_ko, self.ctest)
        tap = str(self.ctest)
        self.assertTrue(self.ctest.isError(), tap)
        self.assertIsNotNone(not_ok.search(tap), tap)

    def testFlowVars_fail(self):
        check_flow_vars(
            'RO', self.scen_ko[0]['R0'],
            self.check_ko[0]['R0'], self.ctest)
        tap = str(self.ctest)
        self.assertTrue(self.ctest.isError(), tap)
        self.assertIsNotNone(not_ok.search(tap), tap)
 def setUp(self):
     self.ctest = Test()
 def setUp(self):
     self.ctest = Test()
     self.msg = load_yaml('./tests/fixtures/sip_out.yml')
 def setUp(self):
     self.ctest = Test()
     self.msg = open('./tests/fixtures/sip_in.txt', 'r').read()