| Index: third_party/gsutil/boto/tests/integration/route53/test_zone.py
|
| diff --git a/third_party/gsutil/boto/tests/integration/route53/test_zone.py b/third_party/gsutil/boto/tests/integration/route53/test_zone.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1c4d6bef21f3d159c3c09575cf284b925bad863e
|
| --- /dev/null
|
| +++ b/third_party/gsutil/boto/tests/integration/route53/test_zone.py
|
| @@ -0,0 +1,132 @@
|
| +# Copyright (c) 2011 Blue Pines Technologies LLC, Brad Carleton
|
| +# www.bluepines.org
|
| +# Copyright (c) 2012 42 Lines Inc., Jim Browne
|
| +#
|
| +# Permission is hereby granted, free of charge, to any person obtaining a
|
| +# copy of this software and associated documentation files (the
|
| +# "Software"), to deal in the Software without restriction, including
|
| +# without limitation the rights to use, copy, modify, merge, publish, dis-
|
| +# tribute, sublicense, and/or sell copies of the Software, and to permit
|
| +# persons to whom the Software is furnished to do so, subject to the fol-
|
| +# lowing conditions:
|
| +#
|
| +# The above copyright notice and this permission notice shall be included
|
| +# in all copies or substantial portions of the Software.
|
| +#
|
| +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
| +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
|
| +# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
| +# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
| +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
| +# IN THE SOFTWARE.
|
| +#
|
| +
|
| +import unittest
|
| +from boto.route53.connection import Route53Connection
|
| +from boto.exception import TooManyRecordsException
|
| +
|
| +
|
| +class TestRoute53Zone(unittest.TestCase):
|
| + @classmethod
|
| + def setUpClass(self):
|
| + route53 = Route53Connection()
|
| + zone = route53.get_zone('example.com')
|
| + if zone is not None:
|
| + zone.delete()
|
| + self.zone = route53.create_zone('example.com')
|
| +
|
| + def test_nameservers(self):
|
| + self.zone.get_nameservers()
|
| +
|
| + def test_a(self):
|
| + self.zone.add_a('example.com', '102.11.23.1', 80)
|
| + record = self.zone.get_a('example.com')
|
| + self.assertEquals(record.name, u'example.com.')
|
| + self.assertEquals(record.resource_records, [u'102.11.23.1'])
|
| + self.assertEquals(record.ttl, u'80')
|
| + self.zone.update_a('example.com', '186.143.32.2', '800')
|
| + record = self.zone.get_a('example.com')
|
| + self.assertEquals(record.name, u'example.com.')
|
| + self.assertEquals(record.resource_records, [u'186.143.32.2'])
|
| + self.assertEquals(record.ttl, u'800')
|
| +
|
| + def test_cname(self):
|
| + self.zone.add_cname('www.example.com', 'webserver.example.com', 200)
|
| + record = self.zone.get_cname('www.example.com')
|
| + self.assertEquals(record.name, u'www.example.com.')
|
| + self.assertEquals(record.resource_records, [u'webserver.example.com.'])
|
| + self.assertEquals(record.ttl, u'200')
|
| + self.zone.update_cname('www.example.com', 'web.example.com', 45)
|
| + record = self.zone.get_cname('www.example.com')
|
| + self.assertEquals(record.name, u'www.example.com.')
|
| + self.assertEquals(record.resource_records, [u'web.example.com.'])
|
| + self.assertEquals(record.ttl, u'45')
|
| +
|
| + def test_mx(self):
|
| + self.zone.add_mx('example.com',
|
| + ['10 mx1.example.com', '20 mx2.example.com'],
|
| + 1000)
|
| + record = self.zone.get_mx('example.com')
|
| + self.assertEquals(set(record.resource_records),
|
| + set([u'10 mx1.example.com.',
|
| + u'20 mx2.example.com.']))
|
| + self.assertEquals(record.ttl, u'1000')
|
| + self.zone.update_mx('example.com',
|
| + ['10 mail1.example.com', '20 mail2.example.com'],
|
| + 50)
|
| + record = self.zone.get_mx('example.com')
|
| + self.assertEquals(set(record.resource_records),
|
| + set([u'10 mail1.example.com.',
|
| + '20 mail2.example.com.']))
|
| + self.assertEquals(record.ttl, u'50')
|
| +
|
| + def test_get_records(self):
|
| + self.zone.get_records()
|
| +
|
| + def test_get_nameservers(self):
|
| + self.zone.get_nameservers()
|
| +
|
| + def test_get_zones(self):
|
| + route53 = Route53Connection()
|
| + route53.get_zones()
|
| +
|
| + def test_identifiers_wrrs(self):
|
| + self.zone.add_a('wrr.example.com', '1.2.3.4',
|
| + identifier=('foo', '20'))
|
| + self.zone.add_a('wrr.example.com', '5.6.7.8',
|
| + identifier=('bar', '10'))
|
| + wrrs = self.zone.find_records('wrr.example.com', 'A', all=True)
|
| + self.assertEquals(len(wrrs), 2)
|
| + self.zone.delete_a('wrr.example.com', all=True)
|
| +
|
| + def test_identifiers_lbrs(self):
|
| + self.zone.add_a('lbr.example.com', '4.3.2.1',
|
| + identifier=('baz', 'us-east-1'))
|
| + self.zone.add_a('lbr.example.com', '8.7.6.5',
|
| + identifier=('bam', 'us-west-1'))
|
| + lbrs = self.zone.find_records('lbr.example.com', 'A', all=True)
|
| + self.assertEquals(len(lbrs), 2)
|
| + self.zone.delete_a('lbr.example.com',
|
| + identifier=('bam', 'us-west-1'))
|
| + self.zone.delete_a('lbr.example.com',
|
| + identifier=('baz', 'us-east-1'))
|
| +
|
| + def test_toomany_exception(self):
|
| + self.zone.add_a('exception.example.com', '4.3.2.1',
|
| + identifier=('baz', 'us-east-1'))
|
| + self.zone.add_a('exception.example.com', '8.7.6.5',
|
| + identifier=('bam', 'us-west-1'))
|
| + with self.assertRaises(TooManyRecordsException):
|
| + lbrs = self.zone.get_a('exception.example.com')
|
| + self.zone.delete_a('exception.example.com', all=True)
|
| +
|
| + @classmethod
|
| + def tearDownClass(self):
|
| + self.zone.delete_a('example.com')
|
| + self.zone.delete_cname('www.example.com')
|
| + self.zone.delete_mx('example.com')
|
| + self.zone.delete()
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main(verbosity=3)
|
|
|