def initialize(self):
     try:
         web_config = self._get_web_config()
         for web_app in web_config['applications']:
             file_app = self._get_file_config(web_app['id'])
             if file_app:
                 self._applications.append(Application.from_configs(web_app, file_app))
             else:
                 self._applications.append(Application.from_configs(web_app))
     except ConfigException as cfgex:
         return (False, cfgex.error_code, cfgex.message)
     return (True, "0", "Success")
示例#2
0
 def initialize(self):
     try:
         web_config = self._get_web_config()
         for web_app in web_config['applications']:
             file_app = self._get_file_config(web_app['id'])
             if file_app:
                 self._applications.append(
                     Application.from_configs(web_app, file_app))
             else:
                 self._applications.append(
                     Application.from_configs(web_app))
     except ConfigException as cfgex:
         return (False, cfgex.error_code, cfgex.message)
     return (True, "0", "Success")
 def test_actions_should_be_remove_and_upgrade_if_version_of_installed_not_equal_to_new_version(self):
     installed_config = self.get_sample_installed_config()
     web_config = self.get_sample_application_config()
     installed_config['current_version'] = '2.3.4'
     web_config['available_version'] = '2.4.4'
     app = Application.from_configs(web_config, installed_config)
     self.assertEquals(2, len(app.actions))
     self.assertTrue('remove' in app.actions)
     self.assertTrue('upgrade' in app.actions)
    def test_actions_should_be_remove_if_version_of_installed_equal_to_new_version(self):
        installed_config = self.get_sample_installed_config()
        web_config = self.get_sample_application_config()
        installed_config['current_version'] = '2.3.4'
        web_config['available_version'] = '2.3.4'
        app = Application.from_configs(web_config, installed_config)

        print app.actions
        self.assertEquals(1, len(app.actions))
        self.assertEquals('remove', app.actions[0])
示例#5
0
 def test_actions_should_be_remove_and_upgrade_if_version_of_installed_not_equal_to_new_version(
         self):
     installed_config = self.get_sample_installed_config()
     web_config = self.get_sample_application_config()
     installed_config['current_version'] = '2.3.4'
     web_config['available_version'] = '2.4.4'
     app = Application.from_configs(web_config, installed_config)
     self.assertEquals(2, len(app.actions))
     self.assertTrue('remove' in app.actions)
     self.assertTrue('upgrade' in app.actions)
    def test_get_item_responds_with_specific_application(self, mock_urllib2, mock_exists):
        mock_exists.return_value = False
        mock_urllib2.urlopen.return_value = self.make_mock_response(code=200, data=self.get_sample_web_config())
        expected_app = Application.from_configs(self.get_sample_application_config())
        test_installer_api = InstallerAPI('config_url')

        result = test_installer_api.initialize()
        self.assertTrue(result[0])
        app = test_installer_api.get_item(expected_app.id)

        self.assertEquals(expected_app, app)
示例#7
0
    def test_actions_should_be_remove_if_version_of_installed_equal_to_new_version(
            self):
        installed_config = self.get_sample_installed_config()
        web_config = self.get_sample_application_config()
        installed_config['current_version'] = '2.3.4'
        web_config['available_version'] = '2.3.4'
        app = Application.from_configs(web_config, installed_config)

        print app.actions
        self.assertEquals(1, len(app.actions))
        self.assertEquals('remove', app.actions[0])
    def test_get_items_should_return_a_list_of_available_items(self, mock_urllib2, mock_exists):
        mock_exists.return_value = False
        test_installer_api = InstallerAPI('config_url')
        sample = '{"version": 0, "applications":[%s]}' % json.dumps(self.get_sample_application_config())
        expected_result = [Application.from_configs(self.get_sample_application_config())]
        mock_urllib2.urlopen.return_value = self.make_mock_response(code=200, data=sample)
        init_result = list(test_installer_api.initialize())
        self.assertTrue(init_result[0], init_result[2])

        result = test_installer_api.get_items()

        self.assertEqual(expected_result, result)
    def test_process_should_create_and_start_an_upgrader_for_item_if_install_true(self, mock_AsyncActionHandler, mock_urllib2, mock_exists):
        mock_exists.return_value = False
        mock_urllib2.urlopen.return_value = self.make_mock_response(code=200, data=self.get_sample_web_config())
        expected_app = Application.from_configs(self.get_sample_application_config())
        test_installer_api = InstallerAPI('config_url')

        result = test_installer_api.initialize()
        self.assertTrue(result[0], result)
        test_installer_api.process(expected_app.id, 'base_folder', action='upgrade', status_callback='status_callback', complete_callback='complete_callback')

        mock_AsyncActionHandler.assert_called_with('upgrade', expected_app, 'base_folder', status_callback='status_callback', complete_callback='complete_callback')
        mock_AsyncActionHandler.return_value.start.assert_called_with()
    def test_process_should_raise_if_nothing_selected(self, mock_AsyncActionHandler, mock_urllib2, mock_exists):
        mock_exists.return_value = False
        mock_urllib2.urlopen.return_value = self.make_mock_response(code=200, data=self.get_sample_web_config())
        expected_app = Application.from_configs(self.get_sample_application_config())
        test_installer_api = InstallerAPI('config_url')

        result = test_installer_api.initialize()
        self.assertTrue(result[0], result)

        with self.assertRaises(Exception):
            test_installer_api.process(expected_app.id, 'base_folder', action='wrong', status_callback='status_callback', complete_callback='complete_callback')

        mock_AsyncActionHandler.assert_not_called()
    def test_has_correct_fields(self):
        installed_config = self.get_sample_installed_config()
        web_config = self.get_sample_application_config()
        app = Application.from_configs(web_config, installed_config)

        self.assertEquals(web_config['id'], app.id)
        self.assertEquals(web_config['name']['en-us'], app.name)
        self.assertEquals(installed_config['current_version'], app.current_version)
        self.assertEquals(web_config['available_version'], app.available_version)
        self.assertEquals(web_config['location'], app.download_location)
        self.assertEquals(web_config['install_path'], app.relitive_install_path)
        self.assertEquals(installed_config['installed_path'], app.installed_path)
        self.assertEquals(installed_config['shortcut_path'], app.shortcut_path)
        self.assertEquals(web_config['executable'], app.executable_path)
    def test_initialize_should_create_correct_application(self, mock_urllib2, mock_exists):
        mock_exists.return_value = True
        mock_urllib2.urlopen.return_value = self.make_mock_response(code=200, data=self.get_sample_web_config())
        mock_open_file = mock_open(read_data=json.dumps(self.get_sample_installed_config()))
        expected_app = Application.from_configs(self.get_sample_application_config(), self.get_sample_installed_config())

        with patch('installer_api.open', mock_open_file, create=True):
            test_installer_api = InstallerAPI('config_url')

            result = test_installer_api.initialize()
            self.assertTrue(result[0])
            apps = test_installer_api.get_items()

            self.assertEquals(1, len(apps))
            self.assertEquals(expected_app, apps[0])
示例#13
0
    def test_has_correct_fields(self):
        installed_config = self.get_sample_installed_config()
        web_config = self.get_sample_application_config()
        app = Application.from_configs(web_config, installed_config)

        self.assertEquals(web_config['id'], app.id)
        self.assertEquals(web_config['name']['en-us'], app.name)
        self.assertEquals(installed_config['current_version'],
                          app.current_version)
        self.assertEquals(web_config['available_version'],
                          app.available_version)
        self.assertEquals(web_config['location'], app.download_location)
        self.assertEquals(web_config['install_path'],
                          app.relitive_install_path)
        self.assertEquals(installed_config['installed_path'],
                          app.installed_path)
        self.assertEquals(installed_config['shortcut_path'], app.shortcut_path)
        self.assertEquals(web_config['executable'], app.executable_path)
示例#14
0
 def test_two_identical_applications_are_equal(self):
     installed_config = self.get_sample_installed_config()
     web_config = self.get_sample_application_config()
     app1 = Application.from_configs(web_config, installed_config)
     app2 = Application.from_configs(web_config, installed_config)
     self.assertEquals(app1, app2)
示例#15
0
 def test_raises_exception_if_ids_do_not_match(self):
     file_config = self.get_sample_installed_config()
     file_config['id'] = 234
     web_config = self.get_sample_installed_config()
     with self.assertRaises(Exception):
         Application.from_configs(web_config, file_config)
    def test_actions_should_be_install_if_no_existing_version(self):
        web_config = self.get_sample_application_config()
        app = Application.from_configs(web_config)

        self.assertEquals(1, len(app.actions))
        self.assertEquals('install', app.actions[0])
 def test_two_identical_applications_are_equal(self):
     installed_config = self.get_sample_installed_config()
     web_config = self.get_sample_application_config()
     app1 = Application.from_configs(web_config, installed_config)
     app2 = Application.from_configs(web_config, installed_config)
     self.assertEquals(app1, app2)
 def test_uses_web_config_name_if_name_do_not_match(self):
     file_config = self.get_sample_installed_config()
     file_config['name'] = 'Bad Wolf'
     web_config = self.get_sample_application_config()
     app = Application.from_configs(web_config, file_config)
     self.assertEquals(web_config['name']['en-us'], app.name)
 def test_raises_exception_if_ids_do_not_match(self):
     file_config = self.get_sample_installed_config()
     file_config['id'] = 234
     web_config = self.get_sample_installed_config()
     with self.assertRaises(Exception):
         Application.from_configs(web_config, file_config)
示例#20
0
 def test_uses_web_config_name_if_name_do_not_match(self):
     file_config = self.get_sample_installed_config()
     file_config['name'] = 'Bad Wolf'
     web_config = self.get_sample_application_config()
     app = Application.from_configs(web_config, file_config)
     self.assertEquals(web_config['name']['en-us'], app.name)
示例#21
0
 def get_application(self):
     return Application.from_configs(self.get_sample_application_config())
示例#22
0
    def test_actions_should_be_install_if_no_existing_version(self):
        web_config = self.get_sample_application_config()
        app = Application.from_configs(web_config)

        self.assertEquals(1, len(app.actions))
        self.assertEquals('install', app.actions[0])
示例#23
0
 def get_application(self):
     return Application.from_configs(self.get_sample_application_config())