import os import unittest.mock from exp_sf_runner_lambda.entities import ArchiveParams, DbxConfig from exp_sf_runner_lambda.exceptions import DbxConfigError from exp_sf_runner_lambda.handler import get_config_from_file FIXTURES_PATH = os.path.join(os.path.dirname(__file__), "fixtures") class GetConfigFromFileTestCase(unittest.TestCase): def test_get_config_correct(self): filepath = os.path.join(FIXTURES_PATH, "exploration-etl-config.json") actual = get_config_from_file(filepath) expected = { "amazonprime": DbxConfig( databricks_job_id=260, databricks_spark_params=["--class1"], archive_params=ArchiveParams(drop_from_head=3, drop_from_tail=2) ), "default": DbxConfig( databricks_job_id=360, databricks_spark_params=["--class2"], archive_params=ArchiveParams(drop_from_head=0, drop_from_tail=0) ) } self.assertEqual(actual, expected) def test_get_config_raise_err(self): filepath = os.path.join(FIXTURES_PATH, "exploration-etl-config-incorrect.json") self.assertRaises(DbxConfigError, get_config_from_file, filepath)