コード例 #1
0
    def test_get_listed_users(self, conn):
        usr1 = models.CassandraUser(self._get_random_name(1025))
        usr2 = models.CassandraUser(self._get_random_name(1025))
        usr3 = models.CassandraUser(self._get_random_name(1025))
        db1 = models.CassandraSchema('db1')
        db2 = models.CassandraSchema('db2')
        usr1.databases.append(db1.serialize())
        usr3.databases.append(db2.serialize())

        rv_1 = NonCallableMagicMock()
        rv_1.configure_mock(name=usr1.name, super=False)
        rv_2 = NonCallableMagicMock()
        rv_2.configure_mock(name=usr2.name, super=False)
        rv_3 = NonCallableMagicMock()
        rv_3.configure_mock(name=usr3.name, super=True)

        with patch.object(conn.return_value, 'execute', return_value=iter(
                [rv_1, rv_2, rv_3])):
            with patch.object(self.admin, '_get_acl',
                              return_value={usr1.name: {db1.name: {'SELECT'},
                                                        db2.name: {}},
                                            usr3.name: {db2.name: {'SELECT'}}}
                              ):
                usrs = self.manager.list_users(self.context)
                conn.return_value.execute.assert_has_calls([
                    call(self.__LIST_USR_FORMAT),
                ], any_order=True)
                self.assertIn(usr1.serialize(), usrs[0])
                self.assertIn(usr2.serialize(), usrs[0])
                self.assertIn(usr3.serialize(), usrs[0])
コード例 #2
0
    def test_get_listed_users(self):
        usr1 = models.CassandraUser(self._get_random_name(1025))
        usr2 = models.CassandraUser(self._get_random_name(1025))
        usr3 = models.CassandraUser(self._get_random_name(1025))
        db1 = models.CassandraSchema('db1')
        db2 = models.CassandraSchema('db2')
        usr1.databases.append(db1.serialize())
        usr3.databases.append(db2.serialize())

        rv_1 = NonCallableMagicMock()
        rv_1.configure_mock(name=usr1.name, super=False)
        rv_2 = NonCallableMagicMock()
        rv_2.configure_mock(name=usr2.name, super=False)
        rv_3 = NonCallableMagicMock()
        rv_3.configure_mock(name=usr3.name, super=True)

        with patch.object(self.conn, 'execute', return_value=iter(
                [rv_1, rv_2, rv_3])):
            with patch.object(self.admin, '_get_acl',
                              return_value={usr1.name: {db1.name: {'SELECT'},
                                                        db2.name: {}},
                                            usr3.name: {db2.name: {'SELECT'}}}
                              ):
                usrs = self.manager.list_users(self.context)
                self.conn.execute.assert_has_calls([
                    call(self.__LIST_USR_FORMAT),
                ], any_order=True)
                self.assertIn(usr1.serialize(), usrs[0])
                self.assertIn(usr2.serialize(), usrs[0])
                self.assertIn(usr3.serialize(), usrs[0])
コード例 #3
0
class DesignateBackendTest(oslotest.base.BaseTestCase):
    def setUp(self):
        super(DesignateBackendTest, self).setUp()
        opts = RoObject(
            username="******",
            password="******",
            project_name="project",
            project_domain_name="project_domain",
            user_domain_name="user_domain",
        )
        self.target = RoObject(
            {
                "id": "4588652b-50e7-46b9-b688-a9bad40a873e",
                "type": "dyndns",
                "masters": [RoObject({"host": "192.0.2.1", "port": 53})],
                "options": opts,
            }
        )

        # Backends blow up when trying to self.admin_context = ... due to
        # policy not being initialized
        self.admin_context = Mock()
        get_context_patcher = patch("designate.context.DesignateContext.get_admin_context")
        get_context = get_context_patcher.start()
        get_context.return_value = self.admin_context

        self.backend = impl_designate.DesignateBackend(self.target)

        # Mock client
        self.client = NonCallableMagicMock()
        zones = NonCallableMagicMock(spec_set=["create", "delete"])
        self.client.configure_mock(zones=zones)

    def test_create_domain(self):
        zone = create_zone()
        masters = ["%(host)s:%(port)s" % self.target.masters[0]]
        with patch.object(self.backend, "_get_client", return_value=self.client):
            self.backend.create_domain(self.admin_context, zone)
        self.client.zones.create.assert_called_once_with(zone.name, "SECONDARY", masters=masters)

    def test_delete_domain(self):
        zone = create_zone()
        with patch.object(self.backend, "_get_client", return_value=self.client):
            self.backend.delete_domain(self.admin_context, zone)
        self.client.zones.delete.assert_called_once_with(zone.name)

    def test_delete_domain_notfound(self):
        zone = create_zone()
        self.client.delete.side_effect = exceptions.NotFound
        with patch.object(self.backend, "_get_client", return_value=self.client):
            self.backend.delete_domain(self.admin_context, zone)
        self.client.zones.delete.assert_called_once_with(zone.name)

    def test_delete_domain_exc(self):
        class Exc(Exception):
            pass

        zone = create_zone()
        self.client.zones.delete.side_effect = Exc()
        with testtools.ExpectedException(Exc):
            with patch.object(self.backend, "_get_client", return_value=self.client):
                self.backend.delete_domain(self.admin_context, zone)
        self.client.zones.delete.assert_called_once_with(zone.name)
コード例 #4
0
ファイル: test_designate.py プロジェクト: openstack/designate
class DesignateBackendTestCase(tests.TestCase):
    def setUp(self):
        super(DesignateBackendTestCase, self).setUp()
        self.zone = objects.Zone(
            id='e2bed4dc-9d01-11e4-89d3-123b93f75cba',
            name='example.com.',
            email='*****@*****.**',
        )

        self.target = {
            'id': '4588652b-50e7-46b9-b688-a9bad40a873e',
            'type': 'designate',
            'masters': [
                {'host': '192.0.2.1', 'port': 53},
            ],
            'options': [
                {'key': 'username', 'value': 'user'},
                {'key': 'password', 'value': 'secret'},
                {'key': 'project_name', 'value': 'project'},
                {'key': 'project_zone_name', 'value': 'project_zone'},
                {'key': 'user_zone_name', 'value': 'user_zone'},
            ],
        }

        self.backend = impl_designate.DesignateBackend(
            objects.PoolTarget.from_dict(self.target)
        )

        # Mock client
        self.client = NonCallableMagicMock()
        zones = NonCallableMagicMock(spec_set=[
            'create', 'delete'])

        self.client.configure_mock(zones=zones)

    def test_create_zone(self):
        masters = ["%(host)s:%(port)s" % self.target['masters'][0]]
        with patch.object(self.backend, '_get_client',
                          return_value=self.client):
            self.backend.create_zone(self.admin_context, self.zone)
        self.client.zones.create.assert_called_once_with(
            self.zone.name, 'SECONDARY', masters=masters)

    def test_delete_zone(self):
        with patch.object(self.backend, '_get_client',
                          return_value=self.client):
            self.backend.delete_zone(self.admin_context, self.zone)
        self.client.zones.delete.assert_called_once_with(self.zone.name)

    def test_delete_zone_notfound(self):
        self.client.delete.side_effect = exceptions.NotFound
        with patch.object(self.backend, '_get_client',
                          return_value=self.client):
            self.backend.delete_zone(self.admin_context, self.zone)
        self.client.zones.delete.assert_called_once_with(self.zone.name)

    def test_delete_zone_exc(self):
        self.client.zones.delete.side_effect = Exception
        with testtools.ExpectedException(Exception):
            with patch.object(self.backend, '_get_client',
                              return_value=self.client):
                self.backend.delete_zone(self.admin_context, self.zone)
        self.client.zones.delete.assert_called_once_with(self.zone.name)
コード例 #5
0
class DesignateBackendTest(oslotest.base.BaseTestCase):
    def setUp(self):
        super(DesignateBackendTest, self).setUp()
        opts = RoObject(
            username='******',
            password='******',
            project_name='project',
            project_zone_name='project_zone',
            user_zone_name='user_zone'
        )
        self.target = RoObject({
            'id': '4588652b-50e7-46b9-b688-a9bad40a873e',
            'type': 'dyndns',
            'masters': [RoObject({'host': '192.0.2.1', 'port': 53})],
            'options': opts
        })

        # Backends blow up when trying to self.admin_context = ... due to
        # policy not being initialized
        self.admin_context = Mock()
        get_context_patcher = patch(
            'designate.context.DesignateContext.get_admin_context')
        get_context = get_context_patcher.start()
        get_context.return_value = self.admin_context

        self.backend = impl_designate.DesignateBackend(self.target)

        # Mock client
        self.client = NonCallableMagicMock()
        zones = NonCallableMagicMock(spec_set=[
            'create', 'delete'])
        self.client.configure_mock(zones=zones)

    def test_create_zone(self):
        zone = create_zone()
        masters = ["%(host)s:%(port)s" % self.target.masters[0]]
        with patch.object(
                self.backend, '_get_client', return_value=self.client):
            self.backend.create_zone(self.admin_context, zone)
        self.client.zones.create.assert_called_once_with(
            zone.name, 'SECONDARY', masters=masters)

    def test_delete_zone(self):
        zone = create_zone()
        with patch.object(
                self.backend, '_get_client', return_value=self.client):
            self.backend.delete_zone(self.admin_context, zone)
        self.client.zones.delete.assert_called_once_with(zone.name)

    def test_delete_zone_notfound(self):
        zone = create_zone()
        self.client.delete.side_effect = exceptions.NotFound
        with patch.object(
                self.backend, '_get_client', return_value=self.client):
            self.backend.delete_zone(self.admin_context, zone)
        self.client.zones.delete.assert_called_once_with(zone.name)

    def test_delete_zone_exc(self):
        class Exc(Exception):
            pass

        zone = create_zone()
        self.client.zones.delete.side_effect = Exc()
        with testtools.ExpectedException(Exc):
            with patch.object(
                    self.backend, '_get_client', return_value=self.client):
                self.backend.delete_zone(self.admin_context, zone)
        self.client.zones.delete.assert_called_once_with(zone.name)
コード例 #6
0
ファイル: test_designate.py プロジェクト: imerali/designate
class DesignateBackendTest(oslotest.base.BaseTestCase):
    def setUp(self):
        super(DesignateBackendTest, self).setUp()
        opts = RoObject(username='******',
                        password='******',
                        project_name='project',
                        project_zone_name='project_zone',
                        user_zone_name='user_zone')
        self.target = RoObject({
            'id':
            '4588652b-50e7-46b9-b688-a9bad40a873e',
            'type':
            'dyndns',
            'masters': [RoObject({
                'host': '192.0.2.1',
                'port': 53
            })],
            'options':
            opts
        })

        # Backends blow up when trying to self.admin_context = ... due to
        # policy not being initialized
        self.admin_context = Mock()
        get_context_patcher = patch(
            'designate.context.DesignateContext.get_admin_context')
        get_context = get_context_patcher.start()
        get_context.return_value = self.admin_context

        self.backend = impl_designate.DesignateBackend(self.target)

        # Mock client
        self.client = NonCallableMagicMock()
        zones = NonCallableMagicMock(spec_set=['create', 'delete'])
        self.client.configure_mock(zones=zones)

    def test_create_zone(self):
        zone = create_zone()
        masters = ["%(host)s:%(port)s" % self.target.masters[0]]
        with patch.object(self.backend,
                          '_get_client',
                          return_value=self.client):
            self.backend.create_zone(self.admin_context, zone)
        self.client.zones.create.assert_called_once_with(zone.name,
                                                         'SECONDARY',
                                                         masters=masters)

    def test_delete_zone(self):
        zone = create_zone()
        with patch.object(self.backend,
                          '_get_client',
                          return_value=self.client):
            self.backend.delete_zone(self.admin_context, zone)
        self.client.zones.delete.assert_called_once_with(zone.name)

    def test_delete_zone_notfound(self):
        zone = create_zone()
        self.client.delete.side_effect = exceptions.NotFound
        with patch.object(self.backend,
                          '_get_client',
                          return_value=self.client):
            self.backend.delete_zone(self.admin_context, zone)
        self.client.zones.delete.assert_called_once_with(zone.name)

    def test_delete_zone_exc(self):
        class Exc(Exception):
            pass

        zone = create_zone()
        self.client.zones.delete.side_effect = Exc()
        with testtools.ExpectedException(Exc):
            with patch.object(self.backend,
                              '_get_client',
                              return_value=self.client):
                self.backend.delete_zone(self.admin_context, zone)
        self.client.zones.delete.assert_called_once_with(zone.name)
コード例 #7
0
ファイル: test_designate.py プロジェクト: tucows/designate
class DesignateBackendTestCase(designate.tests.TestCase):
    def setUp(self):
        super(DesignateBackendTestCase, self).setUp()
        self.stdlog = fixtures.StandardLogging()
        self.useFixture(self.stdlog)

        self.zone = objects.Zone(
            id='e2bed4dc-9d01-11e4-89d3-123b93f75cba',
            name='example.com.',
            email='*****@*****.**',
        )

        self.target = {
            'id': '4588652b-50e7-46b9-b688-a9bad40a873e',
            'type': 'designate',
            'masters': [
                {'host': '192.0.2.1', 'port': 53},
            ],
            'options': [
                {'key': 'auth_url', 'value': 'auth_url'},
                {'key': 'username', 'value': 'user'},
                {'key': 'password', 'value': 'secret'},
                {'key': 'project_name', 'value': 'project'},
                {'key': 'project_domain_name', 'value': 'project_domain'},
                {'key': 'user_domain_name', 'value': 'user_domain'},
                {'key': 'region_name', 'value': 'RegionOne'},
            ],
        }

        self.backend = impl_designate.DesignateBackend(
            objects.PoolTarget.from_dict(self.target)
        )

        # Mock client
        self.client = NonCallableMagicMock()
        zones = NonCallableMagicMock(spec_set=['create', 'delete'])

        self.client.configure_mock(zones=zones)

        self.backend._client = self.client

    def test_get_options(self):
        self.assertEqual('auth_url', self.backend.auth_url)
        self.assertEqual('user', self.backend.username)
        self.assertEqual('secret', self.backend.password)
        self.assertEqual('project', self.backend.project_name)
        self.assertEqual('project_domain', self.backend.project_domain_name)
        self.assertEqual('user_domain', self.backend.user_domain_name)
        self.assertEqual('dns', self.backend.service_type)
        self.assertEqual('RegionOne', self.backend.region_name)

    def test_get_client(self):
        self.backend._client = None

        self.assertIsInstance(self.backend.client, client.Client)

    def test_create_zone(self):
        masters = ["%(host)s:%(port)s" % self.target['masters'][0]]
        self.backend.create_zone(self.admin_context, self.zone)
        self.client.zones.create.assert_called_once_with(
            self.zone.name, 'SECONDARY', masters=masters)

        self.assertIn(
            'Creating zone e2bed4dc-9d01-11e4-89d3-123b93f75cba / '
            'example.com.',
            self.stdlog.logger.output
        )

    def test_delete_zone(self):
        self.backend.delete_zone(self.admin_context, self.zone)
        self.client.zones.delete.assert_called_once_with(self.zone.name)

        self.assertIn(
            'Deleting zone e2bed4dc-9d01-11e4-89d3-123b93f75cba / '
            'example.com.',
            self.stdlog.logger.output
        )

    def test_delete_zone_notfound(self):
        self.client.delete.side_effect = exceptions.NotFound
        self.backend.delete_zone(self.admin_context, self.zone)
        self.client.zones.delete.assert_called_once_with(self.zone.name)

    def test_delete_zone_exc(self):
        self.client.zones.delete.side_effect = exceptions.RemoteError

        self.assertRaises(
            exceptions.RemoteError,
            self.backend.delete_zone, self.admin_context, self.zone,
        )
        self.client.zones.delete.assert_called_once_with(self.zone.name)

    def test_delete_zone_exc_not_found(self):
        self.client.zones.delete.side_effect = exceptions.NotFound

        self.backend.delete_zone(self.admin_context, self.zone)

        self.assertIn(
            'Zone e2bed4dc-9d01-11e4-89d3-123b93f75cba not found on remote '
            'Designate, Ignoring',
            self.stdlog.logger.output
        )