def test_success(self): driver = Mock() zone = Zone(id=1, domain='example.com', type='master', ttl=900, driver=driver) mock_records = [] for values in MOCK_RECORDS_VALUES: values = values.copy() values['driver'] = driver values['zone'] = zone record = Record(**values) mock_records.append(record) driver.list_records.return_value = mock_records output = libcloud_zone_to_bind_zone_file(zone=zone) lines = output.split('\n') self.assertRegexpMatches(lines[1], r'\$ORIGIN example\.com\.') self.assertRegexpMatches(lines[2], r'\$TTL 900') self.assertRegexpMatches(lines[4], r'www.example.com\.\s+900\s+IN\s+A\s+127\.0\.0\.1') self.assertRegexpMatches(lines[5], r'www.example.com\.\s+900\s+IN\s+AAAA\s+2a01:4f8:121:3121::2') self.assertRegexpMatches(lines[6], r'www.example.com\.\s+123\s+IN\s+A\s+127\.0\.0\.1') self.assertRegexpMatches(lines[7], r'example.com\.\s+900\s+IN\s+A\s+127\.0\.0\.1') self.assertRegexpMatches(lines[8], r'test1.example.com\.\s+900\s+IN\s+TXT\s+"test foo bar"') self.assertRegexpMatches(lines[9], r'test2.example.com\.\s+900\s+IN\s+TXT\s+"test \\"foo\\" \\"bar\\""') self.assertRegexpMatches(lines[10], r'example.com\.\s+900\s+IN\s+MX\s+10\s+mx.example.com') self.assertRegexpMatches(lines[11], r'example.com\.\s+900\s+IN\s+SRV\s+20\s+10 3333 example.com')
def test_success(self): driver = Mock() zone = Zone(id=1, domain='example.com', type='master', ttl=900, driver=driver) mock_records = [] for values in MOCK_RECORDS_VALUES: values = values.copy() values['driver'] = driver values['zone'] = zone record = Record(**values) mock_records.append(record) driver.list_records.return_value = mock_records output = libcloud_zone_to_bind_zone_file(zone=zone) lines = output.split('\n') self.assertRegexpMatches(lines[1], r'\$ORIGIN example\.com\.') self.assertRegexpMatches(lines[2], r'\$TTL 900') self.assertRegexpMatches( lines[4], r'www.example.com\.\s+900\s+IN\s+A\s+127\.0\.0\.1') self.assertRegexpMatches( lines[5], r'www.example.com\.\s+900\s+IN\s+AAAA\s+2a01:4f8:121:3121::2') self.assertRegexpMatches( lines[6], r'www.example.com\.\s+123\s+IN\s+A\s+127\.0\.0\.1') self.assertRegexpMatches( lines[7], r'example.com\.\s+900\s+IN\s+A\s+127\.0\.0\.1') self.assertRegexpMatches( lines[8], r'test1.example.com\.\s+900\s+IN\s+TXT\s+"test foo bar"') self.assertRegexpMatches( lines[9], r'test2.example.com\.\s+900\s+IN\s+TXT\s+"test \\"foo\\" \\"bar\\""' ) self.assertRegexpMatches( lines[10], r'example.com\.\s+900\s+IN\s+MX\s+10\s+mx.example.com') self.assertRegexpMatches( lines[11], r'example.com\.\s+900\s+IN\s+SRV\s+20\s+10 3333 example.com')
# Licensed to Tomaz Muraus under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # Tomaz muraus licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT 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 libcloud.dns.types import Provider from libcloud.dns.providers import get_driver from libcloud_to_bind import libcloud_zone_to_bind_zone_file DOMAIN_TO_EXPORT = 'example.com' Zerigo = get_driver(Provider.ZERIGO) driver = Zerigo('email', 'api key') zones = driver.list_zones() zone = [z for z in zones if z.domain == DOMAIN_TO_EXPORT][0] result = libcloud_zone_to_bind_zone_file(zone=zone) print(result)
# contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # Tomaz muraus licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT 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 libcloud.dns.types import Provider from libcloud.dns.providers import get_driver from libcloud_to_bind import libcloud_zone_to_bind_zone_file DOMAIN_TO_EXPORT = 'example.com' Zerigo = get_driver(Provider.ZERIGO) driver = Zerigo('email', 'api key') zones = driver.list_zones() zone = [z for z in zones if z.domain == DOMAIN_TO_EXPORT][0] result = libcloud_zone_to_bind_zone_file(zone=zone) print(result)