def test_dependency_solver_no_match(self): self.mock_validate = self.set_up_patch('joomla_dependencies.dependency_solver.validate_server') self.mock_validate.return_value = True self.mock_support = self.set_up_patch('re.match') self.mock_support.return_value = False res = dependency_solver_wrapper('3.8.1', '3.4.3') self.assertEqual(res, (False, 'Joomla Version is not supported'))
def printer(versions, offline=False): """ The purpose of this function is to print the results retrieved from the dependency solver in a distinct and readable way. Given a list of the currently installed Joomla! systems,the dependency solver is called and the function prints all the paths and results that the dependency solver solved. :param versions: A list of Joomla! versions :return: """ case_count = 1 for case in versions: print (Style.BRIGHT + Fore.MAGENTA + "-----------------------------------------------------------------------" "-----------------------------------------------" + Fore.WHITE) print(Fore.CYAN + "Current Version:%s - Case: %d\n" % (case, case_count) + Fore.WHITE) result, paths = dependency_solver_wrapper(case, '3.4.3', offline) if result: print (' The upgrade require %d step(s) to be completed\n' % len(paths)) for path_id, path in paths.items(): print(Fore.GREEN + " --Step no %d: Upgrade to version %s" % (path_id + 1, path['version']) + Fore.WHITE) print (Style.DIM + "\t Url: %s" % path['download_url'] + Style.BRIGHT) else: print(Fore.RED + paths + Fore.WHITE) print('\n') case_count += 1 print (Fore.MAGENTA + "------------------------------------------------------------------------------------------" "----------------------------" + Fore.WHITE) return
def test_that_fixtures_are_called(self): self.mock_validate = self.set_up_patch('joomla_dependencies.dependency_solver.validate_server') self.mock_validate.return_value = True self.mock_fixture = self.set_up_patch('joomla_dependencies.dependency_solver.get_fixture_manifest') self.mock_fixture.return_value = 'yolo' self.mock_solver.return_value = 'hello' res = dependency_solver_wrapper('1.7.1', '3.4.2', True) calls = self.mock_fixture.call_args_list self.assertEqual(calls, [call(), call(True)]) self.assertEqual(res, 'hello')
def test_dependency_solver_server_error(self): self.mock_validate = self.set_up_patch('joomla_dependencies.dependency_solver.validate_server') self.mock_validate.return_value = False res = dependency_solver_wrapper('3.4.1', '3.4.3') self.assertEqual(res, (False, 'Server Config Not Supported'))
def test_dependency_solver_wrapper(self): self.mock_retrieve.return_value = 'banaan' self.mock_solver.return_value = 'hello' res = dependency_solver_wrapper('3.4.1', '3.4.3') self.assertEqual(res, 'hello')
def test_default_message(self): res = dependency_solver_wrapper('3.42', '3.41') self.assertEqual(res, (False, 'Joomla Version is not supported'))
def test_dependency_solver_no_need_to_update(self): res = dependency_solver_wrapper('3.4.1', '3.4.1') self.assertEqual(res, (False, 'System Already Up-To-Date'))