Ejemplo n.º 1
0
    def get(self, key, value):
        """Get single app by one of id or name

        Keyword Args:
            id (str): Full app id
            name (str): App name

        Returns:
            App: Corresponding App resource instance

        Raises:
            TypeError: No or multiple keyword arguments provided
            ValueError: No matching app found on server
        """
        if key == 'id':
            # Server returns 204 instead of 404 for a non-existent app id
            response = self._swimlane.request('get', 'app/{}'.format(value))
            if response.status_code == 204:
                raise ValueError('No app with id "{}"'.format(value))

            return App(self._swimlane, response.json())
        else:
            # Workaround for lack of support for get by name
            # Holdover from previous driver support, to be fixed as part of 3.x
            for app in self.list():
                if value and value == app.name:
                    return app

            # No matching app found
            raise ValueError('No app with name "{}"'.format(value))
Ejemplo n.º 2
0
    def list(self):
        """Retrieve list of all apps

        Returns:
            :class:`list` of :class:`~swimlane.core.resources.app.App`: List of all retrieved apps
        """
        response = self._swimlane.request('get', 'app')
        return [App(self._swimlane, item) for item in response.json()]
Ejemplo n.º 3
0
 def setUp(self):
     self.src_app = App({
         'id':
         '123',
         'name':
         'Source',
         'acronym':
         'SO',
         'fields': [{
             'name':
             'Component',
             'values': [{
                 'name': 'Foo'
             }, {
                 'name': 'Bar'
             }, {
                 'name': 'Baz'
             }],
             'fieldType':
             'valuesList'
         }]
     })
     self.dest_app = App({
         'id':
         '456',
         'name':
         'Destination',
         'acronym':
         'DE',
         'fields': [{
             'name': 'Component',
             'values': [{
                 'name': 'Baz'
             }, {
                 'name': 'Bar'
             }],
             'fieldType': 'valuesList'
         }]
     })
Ejemplo n.º 4
0
 def test_field_id(self):
     app = App(MOCK_APP)
     self.assertEqual(app.field_id('Mock Field'), '456')
     self.assertEqual(app.field_id('Not A Field'), None)
Ejemplo n.º 5
0
 def test_init(self):
     app = App(MOCK_APP)
     for key, value in MOCK_APP.items():
         self.assertEqual(getattr(app, key), value)