def test_import2(self): fname = self._zonefile('zone2.txt') cli53_cmd('import', '--file', fname, self.zone) output = cli53_cmd('export', self.zone) output = [x for x in output.split('\n') if x] output.sort() self.assertEqual( [ "$ORIGIN %s." % self.zone, RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), "@ 86400 IN A 10.0.0.1", "@ 86400 IN MX 10 mail.example.com.", "@ 86400 IN MX 20 mail2.example.com.", "@ 86400 IN TXT \"v=spf1 a mx a:cli53.example.com mx:mail.example.com ip4:10.0.0.0/24 ~all\"", RegexEqual('^@ 900 IN SOA'), "mail 86400 IN A 10.0.0.2", "mail2 86400 IN A 10.0.0.3", 'test 86400 IN TXT "multivalued" " txt \\"quoted\\" record"', "www 86400 IN A 10.0.0.1", ], output )
def disabled_aws_extensions(self): # disabled - they require a valid ELB to point to fname = self._zonefile('zoneaws.txt') cli53_cmd('import', '--file', fname, self.zone) output = cli53_cmd('export', self.zone) output = [x for x in output.split('\n') if x] output.sort() self.assertEqual( [ "$ORIGIN %s." % self.zone, RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 900 IN SOA'), "test 86400 AWS A 10 127.0.0.1 abc", "test 86400 AWS A 20 127.0.0.2 def", "test2 600 AWS ALIAS Z3NF1Z3NOM5OY2 test-212960849.eu-west-1.elb.amazonaws.com.", "test3 600 AWS ALIAS region:us-west-1 Z3NF1Z3NOM5OY2 test-212960849.eu-west-1.elb.amazonaws.com. " "identifier-test-id", "test4 600 AWS ALIAS 50 Z3NF1Z3NOM5OY2 test-212960849.eu-west-1.elb.amazonaws.com. latency-test-id", "test5 60 AWS A failover:PRIMARY 127.0.0.3 Primary", "test5 600 AWS A failover:SECONDARY 127.0.0.4 Secondary" ], output )
def test_import_arpa(self): fname = self._zonefile('zone3.txt') cli53_cmd('import', '--file', fname, self.zone) output = cli53_cmd('export', self.zone) output = [x for x in output.split('\n') if x] output.sort() self.assertEqual([ "$ORIGIN %s." % self.zone, "98 0 IN PTR blah.foo.com.", RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 900 IN SOA'), ], output)
def setUp(self): # re-use if already created self.zone = '%d.example.com' % random.randint(0, sys.maxint) comment = 'unittests%s' % os.getenv('TRAVIS_JOB_ID', '') output = cli53_cmd('create', self.zone, '--comment', comment) # extract the zone id for line in output.split('\n'): m = re.search(r'/hostedzone/(.+)', line) if m: self.zoneid = m.group(1)
def test_import_arpa(self): fname = self._zonefile('zone3.txt') cli53_cmd('import', '--file', fname, self.zone) output = cli53_cmd('export', self.zone) output = [x for x in output.split('\n') if x] output.sort() self.assertEqual( [ "$ORIGIN %s." % self.zone, "98 0 IN PTR blah.foo.com.", RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 900 IN SOA'), ], output )
def test_create_delete(self): name = self._unique_name() comment = 'unittests%s' % os.getenv('TRAVIS_JOB_ID', '') cli53_cmd('create', name, '--comment', comment) assert name in cli53_cmd('list') cli53_cmd('delete', name) assert name not in cli53_cmd('list')
def test_rrcreate_replace_latency(self): cli53_cmd('rrcreate', '-i', 'asiacdn', '--region', 'ap-southeast-1', self.zone, 'cdn', 'CNAME', 'asiacdn.com.') cli53_cmd('rrcreate', '-i', 'statescdn', '--region', 'us-west-1', self.zone, 'cdn', 'CNAME', 'uscdn.com.') cli53_cmd('rrcreate', '-i', 'newuscdn', '--region', 'us-west-1', self.zone, 'cdn', 'CNAME', 'newuscdn.com.', '-r')
def test_create_delete(self): name = self._unique_name() comment = "unittests%s" % os.getenv("TRAVIS_JOB_ID", "") cli53_cmd("create", name, "--comment", comment) assert name in cli53_cmd("list") cli53_cmd("delete", name) assert name not in cli53_cmd("list")
def disabled_aws_extensions(self): # disabled - they require a valid ELB to point to fname = self._zonefile('zoneaws.txt') cli53_cmd('import', '--file', fname, self.zone) output = cli53_cmd('export', self.zone) output = [x for x in output.split('\n') if x] output.sort() self.assertEqual([ "$ORIGIN %s." % self.zone, RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 900 IN SOA'), "test 86400 AWS A 10 127.0.0.1 abc", "test 86400 AWS A 20 127.0.0.2 def", "test2 600 AWS ALIAS Z3NF1Z3NOM5OY2 test-212960849.eu-west-1.elb.amazonaws.com.", "test3 600 AWS ALIAS region:us-west-1 Z3NF1Z3NOM5OY2 test-212960849.eu-west-1.elb.amazonaws.com. identifier-test-id", "test4 600 AWS ALIAS 50 Z3NF1Z3NOM5OY2 test-212960849.eu-west-1.elb.amazonaws.com. latency-test-id", ], output)
def test_import2(self): fname = self._zonefile('zone2.txt') cli53_cmd('import', '--file', fname, self.zone) output = cli53_cmd('export', self.zone) output = [x for x in output.split('\n') if x] output.sort() self.assertEqual([ "$ORIGIN %s." % self.zone, RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), RegexEqual('^@ 172800 IN NS'), "@ 86400 IN A 10.0.0.1", "@ 86400 IN MX 10 mail.example.com.", "@ 86400 IN MX 20 mail2.example.com.", "@ 86400 IN TXT \"v=spf1 a mx a:cli53.example.com mx:mail.example.com ip4:10.0.0.0/24 ~all\"", RegexEqual('^@ 900 IN SOA'), "mail 86400 IN A 10.0.0.2", "mail2 86400 IN A 10.0.0.3", 'test 86400 IN TXT "multivalued" " txt \\"quoted\\" record"', "www 86400 IN A 10.0.0.1", ], output)
def test_rrcreate_failover_ALIAS(self): cli53_cmd('rrcreate', self.zone, '', 'A', '10.0.0.1') alias = "%s %s." % (self.zoneid, self.zone) cli53_cmd('rrcreate', self.zone, 'primary', 'ALIAS', alias, '-x 60', '-i failover-primary', '--failover', 'PRIMARY') cli53_cmd('rrcreate', self.zone, 'secondary', 'ALIAS', alias, '-x 60', '-i failover-secondary', '--failover', 'SECONDARY') output = cli53_cmd('export', self.zone) output = [x for x in output.split('\n') if 'failover-' in x] # ALIAS doesn't use TTL in this case, so the value is arbitrary self.assertEqual( [ RegexEqual("primary \d+ AWS ALIAS failover:PRIMARY %s failover-primary" % alias), RegexEqual("secondary \d+ AWS ALIAS failover:SECONDARY %s failover-secondary" % alias), ], output )
def test_usage(self): assert 'usage' in cli53_cmd('-h')
def setUp(self): cli53_cmd('create', self.zone)
def test_rrdelete(self): cli53_cmd('rrcreate', self.zone, '', 'A', '10.0.0.1') cli53_cmd('rrdelete', self.zone, '', 'A')
def test_rrcreate(self): cli53_cmd('rrcreate', self.zone, '', 'A', '10.0.0.1') cli53_cmd('rrcreate', self.zone, 'www', 'CNAME', self.zone + '.', '-x 3600') cli53_cmd('rrcreate', self.zone, 'info', 'TXT', 'this is a "test"') cli53_cmd('rrcreate', self.zone, 'weighttest1', 'CNAME', self.zone + '.', '-x 60', '-w 0', '-i awsweightzero') cli53_cmd('rrcreate', self.zone, 'weighttest2', 'CNAME', self.zone + '.', '-x 60', '-w 1', '-i awsweightone') cli53_cmd('rrcreate', self.zone, 'weighttest3', 'CNAME', self.zone + '.', '-x 60', '-w 50', '-i awsweightfifty') output = cli53_cmd('export', self.zone) output = [ x for x in output.split('\n') if '10.0.0.1' in x or 'CNAME' in x or 'TXT' in x ] self.assertEqual([ "@ 86400 IN A 10.0.0.1", 'info 86400 IN TXT "this is a \\"test\\""', "weighttest1 60 AWS CNAME 0 %s. awsweightzero" % self.zone, "weighttest2 60 AWS CNAME 1 %s. awsweightone" % self.zone, "weighttest3 60 AWS CNAME 50 %s. awsweightfifty" % self.zone, "www 3600 IN CNAME %s." % self.zone, ], output)
def tearDown(self): # clear up cli53_cmd('rrpurge', '--confirm', self.zone) cli53_cmd('delete', self.zone)
def setUp(self): # re-use if already created self.zone = '%d.example.com' % random.randint(0, sys.maxint) cli53_cmd('create', self.zone, '--comment', 'unittests')
def tearDown(self): # clear up cli53_cmd('rrpurge', '--confirm', self.zone) cli53_cmd('delete', self.zone) os.unlink('temp.txt')
def setUp(self): comment = 'unittests%s' % os.getenv('TRAVIS_JOB_ID', '') cli53_cmd('create', self.zone, '--comment', comment)
def test_create_delete(self): name = self._unique_name() cli53_cmd('create', name) assert name in cli53_cmd('list') cli53_cmd('delete', name) assert name not in cli53_cmd('list')
def test_usage(self): assert "usage" in cli53_cmd("-h")
def setUp(self): # re-use if already created self.zone = '%d.example.com' % random.randint(0, sys.maxint) comment = 'unittests%s' % os.getenv('TRAVIS_JOB_ID', '') cli53_cmd('create', self.zone, '--comment', comment)
def test_rrcreate(self): cli53_cmd('rrcreate', self.zone, '', 'A', '10.0.0.1') cli53_cmd('rrcreate', self.zone, 'www', 'CNAME', self.zone+'.', '-x 3600') cli53_cmd('rrcreate', self.zone, 'info', 'TXT', 'this is a "test"') cli53_cmd('rrcreate', self.zone, 'weighttest1', 'CNAME', self.zone+'.', '-x 60', '-w 0', '-i awsweightzero') cli53_cmd('rrcreate', self.zone, 'weighttest2', 'CNAME', self.zone+'.', '-x 60', '-w 1', '-i awsweightone') cli53_cmd('rrcreate', self.zone, 'weighttest3', 'CNAME', self.zone+'.', '-x 60', '-w 50', '-i awsweightfifty') output = cli53_cmd('export', self.zone) output = [ x for x in output.split('\n') if '10.0.0.1' in x or 'CNAME' in x or 'TXT' in x ] self.assertEqual( [ "@ 86400 IN A 10.0.0.1", 'info 86400 IN TXT "this is a \\"test\\""', "weighttest1 60 AWS CNAME 0 %s. awsweightzero" % self.zone, "weighttest2 60 AWS CNAME 1 %s. awsweightone" % self.zone, "weighttest3 60 AWS CNAME 50 %s. awsweightfifty" % self.zone, "www 3600 IN CNAME %s." % self.zone, ], output )