def test__model_incremental(self): self.use_models({ 'model_one': 'select * from events' }) cfg = { "models": { "test_models_compile": { "model_one": { "materialized": "incremental", "sql_where": "created_at", "unique_key": "id" }, } } } config = self.get_config(cfg) manifest = dbt.loader.GraphLoader.load_all(config) compiler = self.get_compiler(config) linker = compiler.compile(manifest) node = 'model.test_models_compile.model_one' self.assertEqual(linker.nodes(), [node]) self.assertEqual(linker.edges(), []) self.assertEqual( manifest.nodes[node].get('config', {}).get('materialized'), 'incremental' )
def test__model_incremental(self): self.use_models({'model_one': 'select * from events'}) cfg = { "models": { "test_models_compile": { "model_one": { "materialized": "incremental", "sql_where": "created_at", "unique_key": "id" }, } } } compiler = self.get_compiler(self.get_project(cfg)) graph, linker = compiler.compile() node = 'model.test_models_compile.model_one' self.assertEqual(linker.nodes(), [node]) self.assertEqual(linker.edges(), []) self.assertEqual( linker.graph.node[node].get('config', {}).get('materialized'), 'incremental')
def test__model_enabled(self): self.use_models({ 'model_one': 'select * from events', 'model_two': "select * from {{ref('model_one')}}", }) cfg = { "models": { "materialized": "table", "test_models_compile": { "model_one": { "enabled": True }, "model_two": { "enabled": False }, } } } compiler = self.get_compiler(self.get_project(cfg)) graph, linker = compiler.compile() six.assertCountEqual(self, linker.nodes(), [ 'model.test_models_compile.model_one', 'model.test_models_compile.model_two' ]) six.assertCountEqual(self, linker.edges(), [( 'model.test_models_compile.model_one', 'model.test_models_compile.model_two', )])
def test__model_incremental(self): self.use_models({'model_one': 'select * from events'}) cfg = { "models": { "test_models_compile": { "model_one": { "materialized": "incremental", "unique_key": "id" }, } } } config = self.get_config(cfg) manifest = dbt.loader.GraphLoader.load_all(config) compiler = self.get_compiler(config) linker = compiler.compile(manifest) node = 'model.test_models_compile.model_one' self.assertEqual(list(linker.nodes()), [node]) self.assertEqual(list(linker.edges()), []) self.assertEqual( manifest.nodes[node].get('config', {}).get('materialized'), 'incremental')
def test__single_model(self): self.use_models({ 'model_one': 'select * from events', }) compiler = self.get_compiler(self.get_project()) graph, linker = compiler.compile() self.assertEquals(linker.nodes(), ['model.test_models_compile.model_one']) self.assertEquals(linker.edges(), [])
def test__topological_ordering(self): self.use_models({ 'model_1': 'select * from events', 'model_2': 'select * from {{ ref("model_1") }}', 'model_3': ''' select * from {{ ref("model_1") }} union all select * from {{ ref("model_2") }} ''', 'model_4': 'select * from {{ ref("model_3") }}' }) compiler = self.get_compiler(self.get_project({})) graph, linker = compiler.compile() six.assertCountEqual(self, linker.nodes(), [ 'model.test_models_compile.model_1', 'model.test_models_compile.model_2', 'model.test_models_compile.model_3', 'model.test_models_compile.model_4', ]) six.assertCountEqual(self, linker.edges(), [ ( 'model.test_models_compile.model_1', 'model.test_models_compile.model_2', ), ( 'model.test_models_compile.model_1', 'model.test_models_compile.model_3', ), ( 'model.test_models_compile.model_2', 'model.test_models_compile.model_3', ), ( 'model.test_models_compile.model_3', 'model.test_models_compile.model_4', ), ]) actual_ordering = linker.as_topological_ordering() expected_ordering = [ 'model.test_models_compile.model_1', 'model.test_models_compile.model_2', 'model.test_models_compile.model_3', 'model.test_models_compile.model_4', ] self.assertEqual(actual_ordering, expected_ordering)
def test__single_model(self): self.use_models({ 'model_one': 'select * from events', }) config = self.get_config() manifest = dbt.loader.GraphLoader.load_all(config) compiler = self.get_compiler(config) linker = compiler.compile(manifest) self.assertEqual(list(linker.nodes()), ['model.test_models_compile.model_one']) self.assertEqual(list(linker.edges()), [])
def test__single_model(self): self.use_models({ 'model_one': 'select * from events', }) config = self.get_config() manifest = dbt.loader.GraphLoader.load_all(config) compiler = self.get_compiler(config) linker = compiler.compile(manifest) self.assertEquals( linker.nodes(), ['model.test_models_compile.model_one']) self.assertEquals( linker.edges(), [])
def test__two_models_simple_ref(self): self.use_models({ 'model_one': 'select * from events', 'model_two': "select * from {{ref('model_one')}}", }) compiler = self.get_compiler(self.get_project()) graph, linker = compiler.compile() six.assertCountEqual(self, linker.nodes(), [ 'model.test_models_compile.model_one', 'model.test_models_compile.model_two', ]) six.assertCountEqual(self, linker.edges(), [( 'model.test_models_compile.model_one', 'model.test_models_compile.model_two', )])
def test__two_models_simple_ref(self): self.use_models({ 'model_one': 'select * from events', 'model_two': "select * from {{ref('model_one')}}", }) config = self.get_config() manifest = dbt.loader.GraphLoader.load_all(config) compiler = self.get_compiler(config) linker = compiler.compile(manifest) six.assertCountEqual(self, linker.nodes(), [ 'model.test_models_compile.model_one', 'model.test_models_compile.model_two', ]) six.assertCountEqual(self, linker.edges(), [( 'model.test_models_compile.model_one', 'model.test_models_compile.model_two', )])
def test__two_models_simple_ref(self): self.use_models({ 'model_one': 'select * from events', 'model_two': "select * from {{ref('model_one')}}", }) config = self.get_config() manifest = dbt.loader.GraphLoader.load_all(config) compiler = self.get_compiler(config) linker = compiler.compile(manifest) six.assertCountEqual(self, linker.nodes(), [ 'model.test_models_compile.model_one', 'model.test_models_compile.model_two', ]) six.assertCountEqual( self, linker.edges(), [ ('model.test_models_compile.model_one','model.test_models_compile.model_two',) ])