kaxil commented on a change in pull request #8772: URL: https://github.com/apache/airflow/pull/8772#discussion_r422127805
########## File path: tests/serialization/test_dag_serialization.py ########## @@ -273,58 +271,70 @@ def test_deserialization(self): for dag_id in stringified_dags: self.validate_deserialized_dag(stringified_dags[dag_id], dags[dag_id]) - example_skip_dag = stringified_dags['example_skip_dag'] - skip_operator_1_task = example_skip_dag.task_dict['skip_operator_1'] - self.validate_deserialized_task( - skip_operator_1_task, 'DummySkipOperator', '#e8b7e4', '#000') - - # Verify that the DAG object has 'full_filepath' attribute - # and is equal to fileloc - self.assertTrue(hasattr(example_skip_dag, 'full_filepath')) - self.assertEqual(example_skip_dag.full_filepath, example_skip_dag.fileloc) - - example_subdag_operator = stringified_dags['example_subdag_operator'] - section_1_task = example_subdag_operator.task_dict['section-1'] - self.validate_deserialized_task( - section_1_task, - SubDagOperator.__name__, - SubDagOperator.ui_color, - SubDagOperator.ui_fgcolor - ) - def validate_deserialized_dag(self, serialized_dag, dag): """ Verify that all example DAGs work with DAG Serialization by checking fields between Serialized Dags & non-Serialized Dags """ - fields_to_check = [ - "task_ids", "params", "fileloc", "max_active_runs", "concurrency", - "is_paused_upon_creation", "doc_md", "safe_dag_id", "is_subdag", - "catchup", "description", "start_date", "end_date", "parent_dag", - "template_searchpath", "_access_control", "dagrun_timeout" - ] - - # fields_to_check = dag.get_serialized_fields() + fields_to_check = dag.get_serialized_fields() - { + # Doesn't implement __eq__ properly. Check manually + 'timezone', + + # Need to check fields in it, to exclude functions + 'default_args', + } for field in fields_to_check: - self.assertEqual(getattr(serialized_dag, field), getattr(dag, field)) + assert getattr(serialized_dag, field) == getattr(dag, field), f'{field} matches' + + if dag.default_args: + for k, v in dag.default_args.items(): + if callable(v): + # Check we stored _someting_. + assert k in serialized_dag.default_args + else: + assert v == serialized_dag.default_args[k], f'default_args[{k}] matches' Review comment: ```suggestion assert v == serialized_dag.default_args[k], f'default_args[{k}] does not match' ``` ? ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org