Skip to content

Commit

Permalink
PR feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
Jacob Beck committed Jul 18, 2019
1 parent 12e53c7 commit b9a3fe5
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 2 deletions.
3 changes: 3 additions & 0 deletions core/dbt/node_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ class RunHookType(StrEnum):
Start = 'on-run-start'
End = 'on-run-end'

# It would be nice to use hologram.StrLiteral for these, but it results in
# un-pickleable types :(


class AnalysisType(StrEnum):
Analysis = str(NodeType.Analysis)
Expand Down
2 changes: 1 addition & 1 deletion core/dbt/parser/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ def _parse_column(self, target, column, package_name, root_dir, path,
)
continue

def parse_from_dict(self, parsed_dict):
def parse_from_dict(self, parsed_dict) -> ParsedTestNode:
return ParsedTestNode.from_dict(parsed_dict)

def build_test_node(self, test_target, package_name, test, root_dir, path,
Expand Down
2 changes: 1 addition & 1 deletion core/dbt/parser/snapshots.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def get_fqn(cls, node, package_project_config, extra=[]):

return fqn

def parse_from_dict(self, parsed_dict):
def parse_from_dict(self, parsed_dict) -> IntermediateSnapshotNode:
return IntermediateSnapshotNode.from_dict(parsed_dict)

@staticmethod
Expand Down
4 changes: 4 additions & 0 deletions test/unit/test_contracts_graph_compiled.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import pickle

from dbt.contracts.graph.compiled import (
CompiledModelNode, InjectedCTE, CompiledTestNode
)
Expand Down Expand Up @@ -92,6 +94,7 @@ def test_basic_uncompiled(self):
'alias': 'bar',
}
self.assert_from_dict(node, minimum)
pickle.loads(pickle.dumps(node))

def test_basic_compiled(self):
node_dict = {
Expand Down Expand Up @@ -284,6 +287,7 @@ def test_basic_uncompiled(self):
'alias': 'bar',
}
self.assert_from_dict(node, minimum)
pickle.loads(pickle.dumps(node))

def test_basic_compiled(self):
node_dict = {
Expand Down
14 changes: 14 additions & 0 deletions test/unit/test_contracts_graph_parsed.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import pickle

from dbt.node_types import NodeType
from dbt.contracts.graph.parsed import (
ParsedModelNode, DependsOn, NodeConfig, ColumnInfo, Hook, ParsedTestNode,
Expand Down Expand Up @@ -51,6 +53,7 @@ def test_populated(self):
cfg._extra['extra'] = 'even more'

self.assert_symmetric(cfg, cfg_dict)
pickle.loads(pickle.dumps(cfg))


class TestParsedModelNode(ContractTestCase):
Expand Down Expand Up @@ -130,6 +133,7 @@ def test_ok(self):
'alias': 'bar',
}
self.assert_from_dict(node, minimum)
pickle.loads(pickle.dumps(node))

def test_complex(self):
node_dict = {
Expand Down Expand Up @@ -479,6 +483,7 @@ def test_ok(self):
'alias': 'bar',
}
self.assert_from_dict(node, minimum)
pickle.loads(pickle.dumps(node))

def test_complex(self):
node_dict = {
Expand Down Expand Up @@ -662,6 +667,7 @@ def test_ok(self):
'alias': 'bar',
}
self.assert_from_dict(node, minimum)
pickle.loads(pickle.dumps(node))

def test_complex(self):
node_dict = {
Expand Down Expand Up @@ -872,6 +878,7 @@ def test_basics(self):
target_schema='some_snapshot_schema',
)
self.assert_symmetric(cfg, cfg_dict)
pickle.loads(pickle.dumps(cfg))

def test_populated(self):
cfg_dict = {
Expand Down Expand Up @@ -972,6 +979,7 @@ def test_basics(self):
target_schema='some_snapshot_schema',
)
self.assert_symmetric(cfg, cfg_dict)
pickle.loads(pickle.dumps(cfg))

def test_populated(self):
cfg_dict = {
Expand Down Expand Up @@ -1091,6 +1099,7 @@ def test_ok(self):
)
cfg._extra.update({'magic_key': 'magic'})
self.assert_symmetric(cfg, cfg_dict)
pickle.loads(pickle.dumps(cfg))


class TestParsedSnapshotNode(ContractTestCase):
Expand Down Expand Up @@ -1199,6 +1208,7 @@ def test_timestamp_ok(self):
)
self.assertTrue(node.is_refable)
self.assertFalse(node.is_ephemeral)
pickle.loads(pickle.dumps(node))

def test_check_ok(self):
node_dict = {
Expand Down Expand Up @@ -1455,6 +1465,7 @@ def test_populated(self):
],
)
self.assert_symmetric(patch, dct)
pickle.loads(pickle.dumps(patch))


class TestParsedMacro(ContractTestCase):
Expand Down Expand Up @@ -1487,6 +1498,7 @@ def test_ok(self):
)
self.assert_symmetric(macro, macro_dict)
self.assertEqual(macro.local_vars(), {})
pickle.loads(pickle.dumps(macro))

def test_invalid_missing_unique_id(self):
bad_missing_uid = {
Expand Down Expand Up @@ -1544,6 +1556,7 @@ def test_ok(self):
block_contents='some doc contents'
)
self.assert_symmetric(doc, doc_dict)
pickle.loads(pickle.dumps(doc))

def test_invalid_missing(self):
bad_missing_contents = {
Expand Down Expand Up @@ -1638,6 +1651,7 @@ def test_basic(self):
'unique_id': 'test.source.my_source.my_source_table',
}
self.assert_from_dict(source_def, minimum)
pickle.loads(pickle.dumps(source_def))

def test_invalid_missing(self):
bad_missing_name = {
Expand Down
9 changes: 9 additions & 0 deletions test/unit/test_contracts_graph_unparsed.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import pickle
from datetime import timedelta

from dbt.contracts.graph.unparsed import (
Expand Down Expand Up @@ -31,6 +32,7 @@ def test_ok(self):
resource_type=NodeType.Macro,
)
self.assert_symmetric(macro, macro_dict)
pickle.loads(pickle.dumps(macro))

def test_invalid_missing_field(self):
macro_dict = {
Expand Down Expand Up @@ -83,6 +85,7 @@ def test_ok(self):

self.assert_fails_validation(node_dict, cls=UnparsedRunHook)
self.assert_fails_validation(node_dict, cls=UnparsedMacro)
pickle.loads(pickle.dumps(node))

def test_empty(self):
node_dict = {
Expand Down Expand Up @@ -148,6 +151,7 @@ def test_ok(self):
)
self.assert_symmetric(node, node_dict)
self.assert_fails_validation(node_dict, cls=UnparsedNode)
pickle.loads(pickle.dumps(node))

def test_bad_type(self):
node_dict = {
Expand Down Expand Up @@ -189,6 +193,7 @@ def test_both(self):
self.assertEqual(threshold.status(error_seconds), FreshnessStatus.Error)
self.assertEqual(threshold.status(warn_seconds), FreshnessStatus.Warn)
self.assertEqual(threshold.status(pass_seconds), FreshnessStatus.Pass)
pickle.loads(pickle.dumps(threshold))

def test_merged(self):
t1 = self.ContractType(
Expand Down Expand Up @@ -230,6 +235,7 @@ def test_partial(self):
self.assert_symmetric(
c, {'database': True, 'schema': False, 'identifier': False}
)
pickle.loads(pickle.dumps(c))


class TestUnparsedSourceDefinition(ContractTestCase):
Expand Down Expand Up @@ -308,6 +314,7 @@ def test_table_defaults(self):
}
self.assert_from_dict(source, from_dict)
self.assert_symmetric(source, to_dict)
pickle.loads(pickle.dumps(source))


class TestUnparsedDocumentationFile(ContractTestCase):
Expand All @@ -331,6 +338,7 @@ def test_ok(self):
self.assert_symmetric(doc, doc_dict)
self.assertEqual(doc.resource_type, NodeType.Documentation)
self.assert_fails_validation(doc_dict, UnparsedNode)
pickle.loads(pickle.dumps(doc))

def test_extra_field(self):
self.assert_fails_validation({})
Expand Down Expand Up @@ -389,6 +397,7 @@ def test_contents(self):
],
}
self.assert_symmetric(update, dct)
pickle.loads(pickle.dumps(update))

def test_bad_test_type(self):
dct = {
Expand Down

0 comments on commit b9a3fe5

Please sign in to comment.