Beispiel #1
0
    def test_profile_validate_success(self):
        # Make sure we can instantiate + validate a valid profile

        project = dbt.project.Project(cfg=self.cfg,
                                      profiles=self.profiles,
                                      profiles_dir=None)

        project.validate()
Beispiel #2
0
    def test_profile_validate_extra(self):
        self.profiles['test']['outputs']['test']['foo'] = 'bar'

        project = dbt.project.Project(cfg=self.cfg,
                                      profiles=self.profiles,
                                      profiles_dir=None)

        message = r'.*not allowed.*foo.* was unexpected.*'
        with self.assertRaisesRegexp(dbt.project.DbtProjectError, message):
            project.validate()
Beispiel #3
0
    def test_profile_validate_missing(self):
        del self.profiles['test']['outputs']['test']['schema']

        project = dbt.project.Project(cfg=self.cfg,
                                      profiles=self.profiles,
                                      profiles_dir=None)

        message = r'.*schema.* is a required property.*'
        with self.assertRaisesRegexp(dbt.project.DbtProjectError, message):
            project.validate()
Beispiel #4
0
    def test_profile_validate_missing_and_extra(self):
        del self.profiles['test']['outputs']['test']['schema']
        self.profiles['test']['outputs']['test']['foo'] = 'bar'

        project = dbt.project.Project(cfg=self.cfg,
                                      profiles=self.profiles,
                                      profiles_dir=None)

        unrecognized = r'not allowed.*foo.* was unexpected'
        extra = r'schema.* is a required property'
        # fun with regexp ordering: want both, don't care about order
        message = '.*({0}.*{1}|{1}.*{0}).*'.format(unrecognized, extra)
        with self.assertRaisesRegexp(dbt.project.DbtProjectError, message):
            project.validate()
Beispiel #5
0
    def get_project(self, extra_cfg=None):
        if extra_cfg is None:
            extra_cfg = {}

        cfg = {
            'name': 'test_models_compile',
            'version': '0.1',
            'profile': 'test',
            'project-root': os.path.abspath('.'),
        }
        cfg.update(extra_cfg)

        project = dbt.project.Project(cfg=cfg,
                                      profiles=self.profiles,
                                      profiles_dir=None)

        project.validate()
        return project
    def get_project(self, extra_cfg=None):
        if extra_cfg is None:
            extra_cfg = {}

        cfg = {
            'name': 'X',
            'version': '0.1',
            'profile': 'test',
            'project-root': os.path.abspath('.'),
        }

        profiles = {
            'test': {
                'outputs': {
                    'test': {
                        'type': 'postgres',
                        'threads': 4,
                        'host': 'database',
                        'port': 5432,
                        'user': '******',
                        'pass': '******',
                        'dbname': 'dbt',
                        'schema': 'dbt_test'
                    }
                },
                'target': 'test'
            }
        }

        cfg.update(extra_cfg)

        project = dbt.project.Project(
            cfg=cfg,
            profiles=profiles,
            profiles_dir=None)

        project.validate()
        return project