def test__dependency_list(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") }}' }) config = self.get_config() manifest = self.load_manifest(config) compiler = self.get_compiler(config) graph = compiler.compile(manifest) models = ('model_1', 'model_2', 'model_3', 'model_4') model_ids = ['model.test_models_compile.{}'.format(m) for m in models] manifest = MagicMock(nodes={ n: MagicMock( unique_id=n, name=n.split('.')[-1], package_name='test_models_compile', fqn=['test_models_compile', n], empty=False, config=MagicMock(enabled=True), ) for n in model_ids }) manifest.expect.side_effect = lambda n: MagicMock(unique_id=n) selector = NodeSelector(graph, manifest) queue = selector.get_graph_queue(parse_difference(None, None)) for model_id in model_ids: self.assertFalse(queue.empty()) got = queue.get(block=False) self.assertEqual(got.unique_id, model_id) with self.assertRaises(Empty): queue.get(block=False) queue.mark_done(got.unique_id) self.assertTrue(queue.empty())
def get_selection_spec(self) -> SelectionSpec: include = [ 'source:{}'.format(s) for s in (self.args.selected or ['*']) ] spec = parse_difference(include, None) return spec
def get_selection_spec(self) -> SelectionSpec: if self.args.selector_name: spec = self.config.get_selector(self.args.selector_name) else: spec = parse_difference(self.selector, self.args.exclude) return spec