def test_create_partial_no_exists(self):
        action = "create"
        bosslet_config = self._bosslet_config()
        modules = self.modules[::3]

        with self.assertRaises(MissingDependencyError):
            build_dependency_graph(action, bosslet_config, modules)
    def test_circular_dep_single(self):
        action = "create"
        bosslet_config = self._bosslet_config()
        modules = (('a', Module(['a'])), )

        with self.assertRaises(CircularDependencyError):
            build_dependency_graph(action, bosslet_config, modules)
    def test_update_exists(self):
        action = "update"
        bosslet_config = self._bosslet_config('abcdefghijk')

        actual = build_dependency_graph(action, bosslet_config, self.modules)

        actual_names = [t[0] for t in actual]
        self.assertEqual(actual_names, self.expected)
    def test_delete_no_exists(self):
        action = "delete"
        bosslet_config = self._bosslet_config()

        actual = build_dependency_graph(action, bosslet_config, self.modules)

        actual_names = [t[0] for t in actual]
        self.assertEqual(actual_names, [])
    def test_create_partial_exists(self):
        action = "create"
        bosslet_config = self._bosslet_config('abcdefghijk')
        modules = self.modules[::3]

        actual = build_dependency_graph(action, bosslet_config, modules)

        actual_names = [t[0] for t in actual]
        self.assertEqual(actual_names, [])
    def test_update_module_no_exists(self):
        action = "update"
        bosslet_config = self._bosslet_config('a')
        modules = (('b', Module(['a'])), )

        actual = build_dependency_graph(action, bosslet_config, modules)

        actual_names = [t[0] for t in actual]
        expected_names = []
        self.assertEqual(actual_names, expected_names)
    def test_delete_partial_exists(self):
        action = "delete"
        bosslet_config = self._bosslet_config('abcdefghijk')
        modules = self.modules[::3]

        actual = build_dependency_graph(action, bosslet_config, modules)

        actual_names = [t[0] for t in actual]
        expected_names = ['j', 'g', 'd', 'a']
        self.assertEqual(actual_names, expected_names)
    def test_update_in_progress(self):
        action = "update"
        bosslet_config = self._bosslet_config('abcdefghijk', True)

        with self.assertRaises(DependencyInProgressError):
            build_dependency_graph(action, bosslet_config, self.modules)
    def test_update_no_exists(self):
        action = "update"
        bosslet_config = self._bosslet_config()

        with self.assertRaises(MissingDependencyError):
            build_dependency_graph(action, bosslet_config, self.modules)