示例#1
0
 def test_set_metadata(self):
     plugin = self.load_from_zip()
     # Check that the plugin is in the database
     key = plugin.key
     self.assertIsNotNone(Plugin(key))
     self.assertEqual(plugin.metadata['homepage'],
                      'http://boundlessgeo.com')
     plugin.set_metadata('homepage', 'http://my.new.homepage')
     plugin = Plugin(key)
     self.assertEqual(plugin.metadata['homepage'], 'http://my.new.homepage')
     # Check blob metadata
     metadata = dict(validator(StringIO(plugin.blob)))
     self.assertEqual(plugin.metadata['homepage'], metadata['homepage'])
示例#2
0
    def test_load_from_zip(self):
        """
        Create a Plugin from a zip file
        """
        # Make plugin
        plugin = self.load_from_zip()
        # Check that the plugin is in the database
        key = plugin.key
        self.assertIsNotNone(Plugin(key))

        # Check that the plugin is the same binary blob
        plugin_path = os.path.join(DATA_DIR, 'test_plugin_%s.zip' % 1)
        my_zip = open(plugin_path, 'rb')
        plugin_content = my_zip.read()
        self.assertEqual(plugin.blob, plugin_content)
        # Check that metadata are in the DB
        plugin = Plugin(key)
        self.assertEqual(plugin.metadata['name'], 'Test Plugin 1')
        self.assertEqual(plugin.metadata['qgisMinimumVersion'], '2.0')
        self.assertEqual(plugin.metadata['description'],
                         'This is my first awesome plugin for testing.')
        self.assertEqual(plugin.metadata['version'], '0.1')
        self.assertEqual(plugin.metadata['author'],
                         'Larry Shaffer (Boundless)')
        self.assertEqual(
            plugin.metadata['about'],
            'Here is some interesting text about my first test plugin.')
        self.assertEqual(plugin.metadata['tracker'],
                         'https://github.com/boundlessgeo/QGIS/issues')
        self.assertEqual(plugin.metadata['repository'],
                         'https://github.com/boundlessgeo/QGIS')
        # Recommended items:
        self.assertEqual(plugin.metadata['tags'], 'boundless,test')
        self.assertEqual(plugin.metadata['homepage'],
                         'http://boundlessgeo.com')
        self.assertEqual(plugin.metadata['category'], 'Plugins')
        self.assertEqual(plugin.metadata['icon'], 'images/test_plugin_1.png')
        self.assertEqual(plugin.metadata['experimental'], 'False')
        self.assertEqual(plugin.metadata['deprecated'], 'False')

        # Delete
        plugin.delete(key)

        # Test
        def load_deleted():
            Plugin(key)

        self.assertRaises(DoesNotExist, load_deleted)
示例#3
0
    def test_set_version(self):
        plugin = self.load_from_zip()
        # Check that the plugin is in the database
        key = plugin.key
        self.assertIsNotNone(Plugin(key))
        plugin.set_metadata('version', '123.34')

        def load_deleted():
            Plugin(key)

        self.assertRaises(DoesNotExist, load_deleted)
        plugin = Plugin(plugin.key)
        self.assertEqual(plugin.version, '123.34')
        metadata = dict(validator(StringIO(plugin.blob)))
        self.assertEqual(plugin.metadata['version'], metadata['version'])
        self.assertEqual(plugin.metadata['version'], '123.34')
示例#4
0
 def test_getter_metadata(self):
     plugin = self.load_from_zip()
     # Check that the plugin is in the database
     key = plugin.key
     self.assertIsNotNone(Plugin(key))
     self.assertEqual(plugin.metadata['homepage'],
                      'http://boundlessgeo.com')
     self.assertEqual(plugin.metadata['homepage'], plugin.homepage)
 def test_plugins_list(self):
     self.load_from_zip()
     self.load_from_zip(2)
     response = self.open_with_auth('/rest/plugins', method='GET')
     plugins = dict(json.loads(response.data)['plugins'].items())
     for p in Plugin.all():
         self.assertIn(p.key, plugins.keys())
         for k, v in p.metadata.items():
             self.assertEqual(getattr(p, k), v)
 def test_plugins_list(self):
     self.load_from_zip()
     self.load_from_zip(2)
     response = self.open_with_auth('/rest/plugins', method='GET')
     plugins = dict(json.loads(response.data)['plugins'].items())
     for p in Plugin.all():
         self.assertIn(p.key, plugins.keys())
         for k, v in p.metadata.items():
             self.assertEqual(getattr(p, k), v)
    def test_load_from_zip(self):
        """
        Create a Plugin from a zip file
        """
        # Make plugin
        plugin = self.load_from_zip()
        # Check that the plugin is in the database
        key = plugin.key
        self.assertIsNotNone(Plugin(key))

        # Check that the plugin is the same binary blob
        plugin_path = os.path.join(DATA_DIR, 'test_plugin_%s.zip'  % 1)
        my_zip = open(plugin_path, 'rb')
        plugin_content = my_zip.read()
        self.assertEqual(plugin.blob, plugin_content)
        # Check that metadata are in the DB
        plugin = Plugin(key)
        self.assertEqual(plugin.metadata['name'], 'Test Plugin 1')
        self.assertEqual(plugin.metadata['qgisMinimumVersion'], '2.0')
        self.assertEqual(plugin.metadata['description'], 'This is my first awesome plugin for testing.')
        self.assertEqual(plugin.metadata['version'], '0.1')
        self.assertEqual(plugin.metadata['author'], 'Larry Shaffer (Boundless)')
        self.assertEqual(plugin.metadata['about'], 'Here is some interesting text about my first test plugin.')
        self.assertEqual(plugin.metadata['tracker'], 'https://github.com/boundlessgeo/QGIS/issues')
        self.assertEqual(plugin.metadata['repository'], 'https://github.com/boundlessgeo/QGIS')
        # Recommended items:
        self.assertEqual(plugin.metadata['tags'], 'boundless,test')
        self.assertEqual(plugin.metadata['homepage'], 'http://boundlessgeo.com')
        self.assertEqual(plugin.metadata['category'], 'Plugins')
        self.assertEqual(plugin.metadata['icon'], 'images/test_plugin_1.png')
        self.assertEqual(plugin.metadata['experimental'], 'False')
        self.assertEqual(plugin.metadata['deprecated'], 'False')

        # Delete
        plugin.delete(key)

        # Test
        def load_deleted():
            Plugin(key)
        self.assertRaises(DoesNotExist, load_deleted)
    def test_api_post_package(self):
        data = open(os.path.join(DATA_DIR, 'test_plugin_1.zip')).read()
        response = self.open_with_auth('/rest/package/', method='POST', data=data)
        response_data = json.loads(response.data)
        self.assertEqual(response_data['result'], 'success')
        self.assertEqual(response_data['plugin']['name'], u'Test Plugin 1')
        key = Plugin.make_key(response_data['plugin']['name'], response_data['plugin']['version'])

        # Loopback
        response = self.open_with_auth('/rest/package/%s' % key, method='GET')
        package = base64.decodestring(json.loads(response.data).values()[0])
        self.assertEqual(package, open(os.path.join(DATA_DIR, 'test_plugin_1.zip')).read())
        # Get the package and check the zip file
        metadata = dict(validator(StringIO(package)))
        self.assertEqual(metadata['name'], response_data['plugin']['name'])
        self.assertEqual(metadata['version'], response_data['plugin']['version'])
        self.assertEqual(metadata['author'], response_data['plugin']['author'])
    def test_api_post_package(self):
        data = open(os.path.join(DATA_DIR, 'test_plugin_1.zip')).read()
        response = self.open_with_auth('/rest/package/',
                                       method='POST',
                                       data=data)
        response_data = json.loads(response.data)
        self.assertEqual(response_data['result'], 'success')
        self.assertEqual(response_data['plugin']['name'], u'Test Plugin 1')
        key = Plugin.make_key(response_data['plugin']['name'],
                              response_data['plugin']['version'])

        # Loopback
        response = self.open_with_auth('/rest/package/%s' % key, method='GET')
        package = base64.decodestring(json.loads(response.data).values()[0])
        self.assertEqual(
            package,
            open(os.path.join(DATA_DIR, 'test_plugin_1.zip')).read())
        # Get the package and check the zip file
        metadata = dict(validator(StringIO(package)))
        self.assertEqual(metadata['name'], response_data['plugin']['name'])
        self.assertEqual(metadata['version'],
                         response_data['plugin']['version'])
        self.assertEqual(metadata['author'], response_data['plugin']['author'])
示例#10
0
 def load_from_zip(self, version=1):
     plugin_path = os.path.join(DATA_DIR, 'test_plugin_%s.zip' % version)
     zip_file = open(plugin_path, 'rb')
     plugin = Plugin.create_from_zip(zip_file)
     self.assertIsNotNone(Plugin(plugin.key))
     return plugin
示例#11
0
 def tearDown(self):
     for p in Plugin.all():
         p.delete(p.key)
示例#12
0
 def load_from_zip(self, version=1):
     plugin_path = os.path.join(DATA_DIR, 'test_plugin_%s.zip' % version)
     zip_file = open(plugin_path, 'rb')
     plugin = Plugin.create_from_zip(zip_file)
     self.assertIsNotNone(Plugin(plugin.key))
     return plugin
示例#13
0
 def tearDown(self):
     for p in Plugin.all():
         p.delete(p.key)
 def test_make_key(self):
     self.assertEqual(Plugin.make_key('uno', 'due'), 'Plugin:uno:due')
 def setUp(self):
     for p in Plugin.all():
         p.delete(p.key)
示例#16
0
 def load_deleted():
     Plugin(plugin.key)
示例#17
0
 def test_make_key(self):
     self.assertEqual(Plugin.make_key('uno', 'due'), 'Plugin:uno:due')
示例#18
0
 def setUp(self):
     for p in Plugin.all():
         p.delete(p.key)
示例#19
0
 def _check_key(i, version):
     key = Plugin.make_key('Test Plugin %s' % i, '0.1')
     return key in [p.key for p in Plugin.all(version=version)]
示例#20
0
 def test_getter_metadata_empty(self):
     plugin = self.load_from_zip()
     # Check that the plugin is in the database
     key = plugin.key
     self.assertIsNotNone(Plugin(key))
     self.assertEquals(plugin.not_exists, '')
示例#21
0
 def load_deleted():
     Plugin(key)
 def _check_key(i, version):
     key = Plugin.make_key('Test Plugin %s' % i, '0.1' )
     return key in [p.key for p in Plugin.all(version=version)]