def test_004_load_setting(self): params = EasyDict({ 'project': 'wandersocket.infra', 'environment': 'production', 'burdock_base': '/home/hiraku', 'via': 'cli' }) config = Config(params) config.load_setting(config.get_project_repo(), 'roles', '.json5') self.assertTrue('rundeck' in config._loaded.roles) config.load_setting(config.get_project_repo(), 'test_en_only', '.json5') self.assertEqual(2, len(config._loaded.test_en_only.comment_in_array)) config.load_setting(config.get_project_repo(), 'test', '.json5') self.assertEqual(2, len(config._loaded.test.comment_in_array))
def test_002_get_burdock_base(self): params = EasyDict({ 'project': 'test_project', 'environment': 'testing', 'via': 'cli' }) config = Config(params) if os.name == 'nt': base = os.environ.get('profile') else: base = os.environ.get('HOME') if BURDOCK_BASE in os.environ: base = os.environ.get(BURDOCK_BASE) self.assertEqual(config.get_burdock_base(), base)
def test_998_alternative_base_dir(self): """It confirms the alternative base dir by specifying os environment variable. This test should be done at last because the mock object replaces the method of target method. os.environ[BURDOCK_BASE] = '/path/of/alternative/base' This way will fail because the environment variable will be affected after initialization of user. :return: """ burdock_base = '/path/of/alternative/base' params = EasyDict({ 'project': 'test_project', 'environment': 'testing', 'via': 'cli' }) Config.get_burdock_base = MagicMock(return_value=burdock_base) config = Config(params) self.assertEqual(config.get_base_dir(), burdock_base) self.assertEqual(config.get_repo_dir(), burdock_base + os.sep + DEFAULT_REPO_DIR)
def test_003_get_burdock_repo(self): params = EasyDict({ 'project': 'test_project', 'environment': 'testing', 'via': 'cli' }) config = Config(params) if os.name == 'nt': base = os.environ.get('profile') else: base = os.environ.get('HOME') if BURDOCK_BASE in os.environ: base = os.environ.get(BURDOCK_BASE) if BURDOCK_REPO in os.environ: repo = os.environ.get(BURDOCK_REPO) else: repo = base + os.sep + DEFAULT_REPO_DIR self.assertEqual(config.get_burdock_repo(), repo)
def test_005_dig(self): params = EasyDict({ 'project': 'wandersocket.infra', 'environment': 'production', 'via': 'cli' }) config = Config(params) ed0 = EasyDict({'abc': 'yes!'}) self.assertEqual('yes!', config.dig(ed0, 'abc')) ed1 = EasyDict({'abc': {'def': [None, {'xyz': 'yes!'}]}}) self.assertEqual('yes!', config.dig(ed1, 'abc.def[1].xyz')) self.assertIsNone(config.dig(ed1, 'abc.def[0]')) ed2 = EasyDict({'abc': ['def', [None, {'xyz': 'yes!'}]]}) self.assertEqual('def', config.dig(ed2, 'abc[0]')) self.assertEqual('yes!', config.dig(ed2, 'abc[1][1].xyz')) self.assertIsNone(config.dig(ed2, 'abc[1][0]'))