From 291ef56bc7db907a1f3b4954939dcce9c33f94f1 Mon Sep 17 00:00:00 2001 From: Drew Banin Date: Thu, 25 Jul 2019 22:25:04 -0400 Subject: [PATCH 1/2] (#1619) fix for unrendered source column descriptions --- core/dbt/parser/util.py | 6 ++++++ .../029_docs_generate_tests/ref_models/docs.md | 4 ++++ .../ref_models/schema.yml | 2 +- .../test_docs_generate.py | 16 ++++++++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/core/dbt/parser/util.py b/core/dbt/parser/util.py index a17a7f87bd9..b704a1b7abd 100644 --- a/core/dbt/parser/util.py +++ b/core/dbt/parser/util.py @@ -161,6 +161,12 @@ def process_docs_for_source(cls, manifest, current_project, source): source.set('description', table_description) source.set('source_description', source_description) + for column_name, column_def in source.columns.items(): + column_description = column_def.get('description', '') + column_description = dbt.clients.jinja.get_rendered( + column_description, context) + column_def['description'] = column_description + @classmethod def process_docs(cls, manifest, current_project): for node in manifest.nodes.values(): diff --git a/test/integration/029_docs_generate_tests/ref_models/docs.md b/test/integration/029_docs_generate_tests/ref_models/docs.md index b3bf0e74a48..1918e825b44 100644 --- a/test/integration/029_docs_generate_tests/ref_models/docs.md +++ b/test/integration/029_docs_generate_tests/ref_models/docs.md @@ -21,3 +21,7 @@ My source {% docs table_info %} My table {% enddocs %} + +{% docs column_info %} +An ID field +{% enddocs %} diff --git a/test/integration/029_docs_generate_tests/ref_models/schema.yml b/test/integration/029_docs_generate_tests/ref_models/schema.yml index 0ebd5e3af3f..3cc4c7aac10 100644 --- a/test/integration/029_docs_generate_tests/ref_models/schema.yml +++ b/test/integration/029_docs_generate_tests/ref_models/schema.yml @@ -28,4 +28,4 @@ sources: identifier: True columns: - name: id - description: "An ID field" + description: "{{ doc('column_info') }}" diff --git a/test/integration/029_docs_generate_tests/test_docs_generate.py b/test/integration/029_docs_generate_tests/test_docs_generate.py index 136719cea5f..196a0746526 100644 --- a/test/integration/029_docs_generate_tests/test_docs_generate.py +++ b/test/integration/029_docs_generate_tests/test_docs_generate.py @@ -1266,6 +1266,11 @@ def expected_postgres_references_manifest(self, model_database=None): 'database': self.default_database, 'description': 'My table', 'docrefs': [ + { + "documentation_package": "", + "documentation_name": "column_info", + "column_name": "id", + }, { 'documentation_name': 'table_info', 'documentation_package': '' @@ -1294,6 +1299,17 @@ def expected_postgres_references_manifest(self, model_database=None): }, 'docs': { 'dbt.__overview__': ANY, + "test.column_info": { + "block_contents": "An ID field", + "file_contents": docs_file, + "name": "column_info", + "original_file_path": docs_path, + "package_name": "test", + "path": "docs.md", + "resource_type": "docs", + "root_path": OneOf(self.test_root_dir, self.initial_dir), + "unique_id": "test.column_info", + }, 'test.ephemeral_summary': { 'block_contents': ( 'A summmary table of the ephemeral copy of the seed data' From f91109570c09595e74de0bb8f0799bfafa4b31ec Mon Sep 17 00:00:00 2001 From: Drew Banin Date: Fri, 26 Jul 2019 09:19:31 -0400 Subject: [PATCH 2/2] pep8 --- core/dbt/parser/util.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/core/dbt/parser/util.py b/core/dbt/parser/util.py index b704a1b7abd..852b73de7c5 100644 --- a/core/dbt/parser/util.py +++ b/core/dbt/parser/util.py @@ -162,10 +162,9 @@ def process_docs_for_source(cls, manifest, current_project, source): source.set('source_description', source_description) for column_name, column_def in source.columns.items(): - column_description = column_def.get('description', '') - column_description = dbt.clients.jinja.get_rendered( - column_description, context) - column_def['description'] = column_description + column_desc = column_def.get('description', '') + column_desc = dbt.clients.jinja.get_rendered(column_desc, context) + column_def['description'] = column_desc @classmethod def process_docs(cls, manifest, current_project):