def test_wrong_id_format(self):
     s1 = {
         'parent': [
             'vn:5543379:5543376:433833.000:244407.000:76125.000',
             '2016-03-15T03:37:56.217Z'
         ]
     }
     with self.assertRaisesRegexp(ValueError, "Invalid state provided"):
         state.parse_state(json.dumps(s1))
    def test_correct_node_state(self):
        s1 = {'edition_time': '2011-12-05T13:51:36.955Z'}
        ps1 = state.parse_state(json.dumps(s1))

        cursor = connection.cursor()
        checks1 = state.collect_state_checks(247, ps1, cursor, node=True)

        state.check_state(ps1, checks1, cursor)
    def test_wrong_node_state(self):
        s1 = {'edition_time': '2016-03-15T03:37:56.217Z'}
        ps1 = state.parse_state(json.dumps(s1))

        cursor = connection.cursor()
        checks1 = state.collect_state_checks(247, ps1, cursor, node=True)
        self.assertEqual(len(checks1), 1)
        self.assertRaises(state.StateMatchingError,
                          lambda: state.check_state(ps1, checks1, cursor))

        s2 = {'edition_time': '2011-12-05T13:51:36.855Z'}
        ps2 = state.parse_state(json.dumps(s2))

        checks2 = state.collect_state_checks(247, ps2, cursor, node=True)
        self.assertEqual(len(checks2), 1)
        self.assertRaises(state.StateMatchingError,
                          lambda: state.check_state(ps2, checks2, cursor))
示例#4
0
    def test_correct_node_state(self):
        s1 = {
            'edition_time': '2011-12-05T13:51:36.955Z'
        }
        ps1 = state.parse_state(json.dumps(s1))

        cursor = connection.cursor()
        checks1 = state.collect_state_checks(247, ps1, cursor, node=True)

        state.check_state(ps1, checks1, cursor)
示例#5
0
    def test_wrong_node_state(self):
        s1 = {
            'edition_time': '2016-03-15T03:37:56.217Z'
        }
        ps1 = state.parse_state(json.dumps(s1))

        cursor = connection.cursor()
        checks1 = state.collect_state_checks(247, ps1, cursor, node=True)
        self.assertEqual(len(checks1), 1)
        self.assertRaises(state.StateMatchingError, lambda: state.check_state(ps1, checks1, cursor))

        s2 = {
            'edition_time': '2011-12-05T13:51:36.855Z'
        }
        ps2 = state.parse_state(json.dumps(s2))

        checks2 = state.collect_state_checks(247, ps2, cursor, node=True)
        self.assertEqual(len(checks2), 1)
        self.assertRaises(state.StateMatchingError, lambda: state.check_state(ps2, checks2, cursor))
    def test_check_disabling(self):
        no_check_state = {"nocheck": True}
        s = state.parse_state(json.dumps(no_check_state))
        self.assertEqual(s, no_check_state)
        self.assertTrue(state.is_disabled(s))

        s2 = state.make_nocheck_state(parsed=True)
        self.assertEqual(s, s2)

        s3 = state.make_nocheck_state(parsed=False)
        self.assertEqual(json.dumps(no_check_state), s3)
示例#7
0
    def test_check_disabling(self):
        no_check_state = {
            "nocheck": True
        }
        s = state.parse_state(json.dumps(no_check_state))
        self.assertEqual(s, no_check_state)
        self.assertTrue(state.is_disabled(s))

        s2 = state.make_nocheck_state(parsed=True)
        self.assertEqual(s, s2)

        s3 = state.make_nocheck_state(parsed=False)
        self.assertEqual(json.dumps(no_check_state), s3)
    def test_state_parsing(self):
        self.assertRaises(ValueError, lambda: state.parse_state(None))
        s1 = {'edition_time': "Timestamp"}
        parsed_state = state.parse_state(json.dumps(s1))
        self.assertEqual(parsed_state['edition_time'], "Timestamp")

        # Reject parents with wrong dimension and type
        self.assertRaises(
            ValueError, lambda: state.parse_state("{'parent': [247, '', 1]}"))
        self.assertRaises(ValueError,
                          lambda: state.parse_state("{'parent':[247]}"))
        self.assertRaises(ValueError,
                          lambda: state.parse_state("{'parent': 247}"))
        # Accept parents with correct dimension
        s2 = state.parse_state('{"parent": [247, "Timestamp"]}')
        self.assertEqual(s2['parent'][0], 247)
        self.assertEqual(s2['parent'][1], "Timestamp")

        self.assertRaises(
            ValueError,
            lambda: state.parse_state("{'children': [[247, '', 1]]}"))
        self.assertRaises(ValueError,
                          lambda: state.parse_state("{'children': [[247]]}"))
        self.assertRaises(ValueError,
                          lambda: state.parse_state("{'children': [247]}"))
        # Accept parents with correct dimension
        s_child = state.parse_state('{"children": [[247, "Timestamp"]]}')
        self.assertEqual(s_child['children'][0][0], 247)
        self.assertEqual(s_child['children'][0][1], "Timestamp")

        self.assertRaises(
            ValueError, lambda: state.parse_state('{"links": [[382, "", 1]]}'))
        self.assertRaises(ValueError,
                          lambda: state.parse_state('{"links": [[382]]}'))
        self.assertRaises(ValueError,
                          lambda: state.parse_state('{"links": [382]}'))
        # Accept parents with correct dimension
        s_links = state.parse_state('{"links": [[382, "Timestamp"]]}')
        self.assertEqual(s_links['links'][0][0], 382)
        self.assertEqual(s_links['links'][0][1], "Timestamp")

        self.assertRaises(
            ValueError, lambda: state.parse_state(
                '[[247, "Timestamp1"], [433, "Timestamp2", 1]]'))
        self.assertRaises(
            ValueError, lambda: state.parse_state(
                '[[247, "Timestamp1"], [], [433, "Timestamp2"]]'))

        s_multinode = state.parse_state(
            '[[247, "Timestamp1"], [433, "Timestamp2"]]')
        self.assertEqual(s_multinode[0][0], 247)
        self.assertEqual(s_multinode[0][1], "Timestamp1")
        self.assertEqual(s_multinode[1][0], 433)
        self.assertEqual(s_multinode[1][1], "Timestamp2")
示例#9
0
    def test_state_parsing(self):
        self.assertRaises(ValueError, lambda: state.parse_state(None))
        s1 = {'edition_time': "Timestamp"}
        parsed_state = state.parse_state(json.dumps(s1))
        self.assertEqual(parsed_state['edition_time'], "Timestamp")

        # Reject parents with wrong dimension and type
        self.assertRaises(ValueError, lambda: state.parse_state("{'parent': [247, '', 1]}"))
        self.assertRaises(ValueError, lambda: state.parse_state("{'parent':[247]}"))
        self.assertRaises(ValueError, lambda: state.parse_state("{'parent': 247}"))
        # Accept parents with correct dimension
        s2 = state.parse_state('{"parent": [247, "Timestamp"]}')
        self.assertEqual(s2['parent'][0], 247)
        self.assertEqual(s2['parent'][1], "Timestamp")

        self.assertRaises(ValueError, lambda: state.parse_state("{'children': [[247, '', 1]]}"))
        self.assertRaises(ValueError, lambda: state.parse_state("{'children': [[247]]}"))
        self.assertRaises(ValueError, lambda: state.parse_state("{'children': [247]}"))
        # Accept parents with correct dimension
        s_child = state.parse_state('{"children": [[247, "Timestamp"]]}')
        self.assertEqual(s_child['children'][0][0], 247)
        self.assertEqual(s_child['children'][0][1], "Timestamp")

        self.assertRaises(ValueError, lambda: state.parse_state('{"links": [[382, "", 1]]}'))
        self.assertRaises(ValueError, lambda: state.parse_state('{"links": [[382]]}'))
        self.assertRaises(ValueError, lambda: state.parse_state('{"links": [382]}'))
        # Accept parents with correct dimension
        s_links = state.parse_state('{"links": [[382, "Timestamp"]]}')
        self.assertEqual(s_links['links'][0][0], 382)
        self.assertEqual(s_links['links'][0][1], "Timestamp")

        self.assertRaises(ValueError, lambda: state.parse_state(
            '[[247, "Timestamp1"], [433, "Timestamp2", 1]]'))
        self.assertRaises(ValueError, lambda: state.parse_state(
            '[[247, "Timestamp1"], [], [433, "Timestamp2"]]'))

        s_multinode = state.parse_state(
            '[[247, "Timestamp1"], [433, "Timestamp2"]]')
        self.assertEqual(s_multinode[0][0], 247)
        self.assertEqual(s_multinode[0][1], "Timestamp1")
        self.assertEqual(s_multinode[1][0], 433)
        self.assertEqual(s_multinode[1][1], "Timestamp2")
示例#10
0
 def test_wrong_id_format(self):
     s1 = {
         'parent': ['vn:5543379:5543376:433833.000:244407.000:76125.000', '2016-03-15T03:37:56.217Z']
     }
     with self.assertRaisesRegexp(ValueError, "Invalid state provided"):
         state.parse_state(json.dumps(s1))