예제 #1
0
    def test_type_error_clause(self, clause):
        ignore_data = [clause]

        with pytest.raises(TypeError) as err:
            IgnoreManager(ignore_data)

        assert ('{} is not a string'.format(clause), ) == err.value.args
예제 #2
0
    def test_incorrect_empty_clause(self, clause):
        ignore_data = [clause]

        with pytest.raises(ValueError) as err:
            IgnoreManager(ignore_data)

        assert ('{} is not a well formed clause: table_name.identifier.name'.
                format(clause), ) == err.value.args
예제 #3
0
    def test_identifier_incorrect(self):
        ignore_data = ['table-A.unknown.some-name']

        with pytest.raises(ValueError) as err:
            IgnoreManager(ignore_data)

        assert (
            "unknown is invalid. It must be in ['pk', 'fk', 'idx', 'col']",
        ) == err.value.args
예제 #4
0
    def test_ignore_tables_property(self, ignore_data):
        im = IgnoreManager(ignore_data)

        expected_tables = set(['table-D', 'table-E'])

        assert expected_tables == im.ignore_tables

        # make sure the property returns a copy
        im.ignore_tables.add('another-table')
        assert expected_tables == im.ignore_tables
예제 #5
0
    def test_init_strip(self):
        ignore_data = ['  table-A  .  pk  .  id  ', '   table-C  ']

        im = IgnoreManager(ignore_data)

        expected_ignore = {'table-A': {'pk': ['id']}}

        expected_tables = set(['table-C'])

        assert expected_ignore == im.ignore_data
        assert expected_tables == im.ignore_tables
예제 #6
0
    def test_ignore_data_property(self, ignore_data):
        im = IgnoreManager(ignore_data)

        expected_ignore = {
            'table-A': {
                'pk': ['id'],
                'fk': ['user_id', 'address_id'],
            },
            'table-B': {
                'pk': ['root_id'],
            },
            'table-C': {
                'col': ['telephone'],
                'idx': ['admin_id'],
            },
        }

        assert expected_ignore == im.ignore_data

        # make sure the property returns a copy
        im.ignore_data['another-table'] = {'something': 'else'}
        assert expected_ignore == im.ignore_data
예제 #7
0
    def test_init(self, ignore_data):
        im = IgnoreManager(ignore_data)

        expected_ignore = {
            'table-A': {
                'pk': ['id'],
                'fk': ['user_id', 'address_id'],
            },
            'table-B': {
                'pk': ['root_id'],
            },
            'table-C': {
                'col': ['telephone'],
                'idx': ['admin_id'],
            },
        }

        expected_tables = set(['table-D', 'table-E'])

        assert expected_ignore == im.ignore_data
        assert expected_tables == im.ignore_tables
예제 #8
0
    def test_init_alternative_separator(self, ignore_data):
        ignore_data = [clause.replace('.', '#') for clause in ignore_data]
        im = IgnoreManager(ignore_data, separator='#')

        expected_ignore = {
            'table-A': {
                'pk': ['id'],
                'fk': ['user_id', 'address_id'],
            },
            'table-B': {
                'pk': ['root_id'],
            },
            'table-C': {
                'col': ['telephone'],
                'idx': ['admin_id'],
            },
        }

        expected_tables = set(['table-D', 'table-E'])

        assert expected_ignore == im.ignore_data
        assert expected_tables == im.ignore_tables
예제 #9
0
    def test_get(self, ignore_data):
        im = IgnoreManager(ignore_data)

        assert ['id'] == im.get('table-A', 'pk')
        assert ['user_id', 'address_id'] == im.get('table-A', 'fk')
예제 #10
0
    def test_get_missing_identifier(self, ignore_data):
        im = IgnoreManager(ignore_data)

        assert [] == im.get('table-C', 'pk')
예제 #11
0
    def test_get_missing_table(self):
        ignore_data = []

        im = IgnoreManager(ignore_data)

        assert [] == im.get('some-table-name', 'some-identifier')
예제 #12
0
    def test_init_empty(self, ignore):
        im = IgnoreManager(ignore)

        assert {} == im.ignore_data
        assert set() == im.ignore_tables