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'))
示例#2
0
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'))