diff options
Diffstat (limited to 'designate/tests/test_manage/test_update_pool.py')
-rw-r--r-- | designate/tests/test_manage/test_update_pool.py | 110 |
1 files changed, 33 insertions, 77 deletions
diff --git a/designate/tests/test_manage/test_update_pool.py b/designate/tests/test_manage/test_update_pool.py index 70087977..c7cf1457 100644 --- a/designate/tests/test_manage/test_update_pool.py +++ b/designate/tests/test_manage/test_update_pool.py @@ -9,12 +9,13 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. + from unittest import mock from oslo_log import log as logging -from designate import context -from designate.manage.pool import PoolCommands +from designate.manage import base +from designate.manage import pool from designate import objects from designate.tests import fixtures from designate.tests.test_manage import DesignateManageTestCase @@ -22,25 +23,25 @@ from designate.tests.test_manage import DesignateManageTestCase LOG = logging.getLogger(__name__) +def hydrate_pool_targets(target_masters): + pool_targets = objects.PoolTargetList() + masters = objects.PoolTargetMasterList() + for target_master in target_masters: + masters.append(target_master) + target = objects.PoolTarget(masters=masters) + target.masters = masters + pool_targets.append(target) + return pool_targets + + class UpdatePoolTestCase(DesignateManageTestCase): def setUp(self): super(DesignateManageTestCase, self).setUp() self.stdlog = fixtures.StandardLogging() self.useFixture(self.stdlog) - self.context = context.DesignateContext.get_admin_context( - request_id='designate-manage' - ) - - def hydrate_pool_targets(self, target_masters): - pool_targets = objects.PoolTargetList() - masters = objects.PoolTargetMasterList() - for target_master in target_masters: - masters.append(target_master) - target = objects.PoolTarget(masters=masters) - target.masters = masters - pool_targets.append(target) - return pool_targets + self.print_result = mock.patch.object( + base.Commands, '_print_result').start() def test_update_pools_zones(self): values = dict( @@ -53,23 +54,22 @@ class UpdatePoolTestCase(DesignateManageTestCase): self.admin_context, zone=objects.Zone.from_dict(values)) # Ensure the correct NS Records are in place - pool = self.central_service.get_pool( + new_pool = self.central_service.get_pool( self.admin_context, zone.pool_id ) - pool.targets = self.hydrate_pool_targets([objects.PoolTargetMaster( - pool_target_id=pool.id, + new_pool.targets = hydrate_pool_targets([objects.PoolTargetMaster( + pool_target_id=new_pool.id, host='192.0.2.2', port='53')] ) - command = PoolCommands() - command.context = self.context - command.central_api = self.central_service + command = pool.PoolCommands() + command._setup() with mock.patch.object( self.central_service, 'update_zone') as mock_update_zone: - command._update_zones(pool) + command._update_zones(new_pool) mock_update_zone.assert_called_once() def test_update_pools_zones_multiple_masters(self): @@ -83,70 +83,26 @@ class UpdatePoolTestCase(DesignateManageTestCase): self.admin_context, zone=objects.Zone.from_dict(values)) # Ensure the correct NS Records are in place - pool = self.central_service.get_pool( + new_pool = self.central_service.get_pool( self.admin_context, zone.pool_id ) - targets1 = self.hydrate_pool_targets([ + targets1 = hydrate_pool_targets([ objects.PoolTargetMaster( - pool_target_id=pool.id, + pool_target_id=new_pool.id, host='192.0.2.3', port='53') ]) - targets2 = self.hydrate_pool_targets([ + targets2 = hydrate_pool_targets([ objects.PoolTargetMaster( - pool_target_id=pool.id, + pool_target_id=new_pool.id, host='192.0.2.4', port='53') ]) - pool.targets = objects.PoolTargetList() - pool.targets.extend(targets1.objects + targets2.objects) - - command = PoolCommands() - command.context = self.context - command.central_api = self.central_service - - command._update_zones(pool) - - def test_create_new_pool(self): - pool = { - 'name': 'new_pool', - 'description': 'New PowerDNS Pool', - 'attributes': {}, - 'ns_records': [ - {'hostname': 'ns1-1.example.org.', 'priority': 1}, - {'hostname': 'ns1-2.example.org.', 'priority': 2} - ], - 'nameservers': [ - {'host': '192.0.2.2', 'port': 53} - ], - 'targets': [ - { - 'type': 'powerdns', - 'description': 'PowerDNS Database Cluster', - 'masters': [ - {'host': '192.0.2.1', 'port': 5354} - ], - 'options': { - 'host': '192.0.2.2', 'port': 53, - 'connection': 'connection' - } - } - ], - 'also_notifies': [ - {'host': '192.0.2.4', 'port': 53} - ] - } - - command = PoolCommands() - command.context = self.context - command.central_api = self.central_service - - command._create_pool(pool, dry_run=False) - - pool = self.central_service.find_pool( - self.admin_context, {'name': 'new_pool'} - ) + new_pool.targets = objects.PoolTargetList() + new_pool.targets.extend(targets1.objects + targets2.objects) + + command = pool.PoolCommands() + command._setup() - self.assertEqual('new_pool', pool.name) - self.assertEqual('New PowerDNS Pool', pool.description) + command._update_zones(new_pool) |