class TestAWSConnection(unittest.TestCase): def __init__(self, method_name='runTest'): super(TestAWSConnection, self).__init__(method_name) def set_error(self): self.error = True def set_json_error(self): self.json_error = True def boto_ec2_connect_to_region(self, region): return MockEc2Connection(self.error) def requests_get(self, url, **kwargs): if self.error: raise RequestException("foo") result = namedtuple('Request', 'ok content') result.ok = True if url.split('/')[-1] == 'document' and not self.json_error: result = {"instanceId": "012345", "region": "eu-west-1"} else: result = 'foo' return MockResponse(result) def setUp(self): self.error = False self.json_error = False requests.get = self.requests_get boto.ec2.connect_to_region = self.boto_ec2_connect_to_region self.conn = AWSConnection('test') def test_aws_available(self): self.assertTrue(self.conn.aws_available()) def test_on_role_change(self): self.assertTrue(self.conn._tag_ebs('master')) self.assertTrue(self.conn._tag_ec2('master')) self.assertTrue(self.conn.on_role_change('master')) def test_non_aws(self): self.set_error() conn = AWSConnection('test') self.assertFalse(conn.aws_available()) self.assertFalse(conn._tag_ebs('master')) self.assertFalse(conn._tag_ec2('master')) def test_aws_bizare_response(self): self.set_json_error() conn = AWSConnection('test') self.assertFalse(conn.aws_available()) def test_aws_tag_ebs_error(self): self.set_error() self.assertFalse(self.conn._tag_ebs("master")) def test_aws_tag_ec2_error(self): self.set_error() self.assertFalse(self.conn._tag_ec2("master"))
class TestAWSConnection(unittest.TestCase): def boto_ec2_connect_to_region(self, region): return MockEc2Connection(self.error) def requests_get(self, url, **kwargs): if self.error: raise RequestException("foo") result = namedtuple('Request', 'ok content') result.ok = True if url.split('/')[-1] == 'document' and not self.json_error: result = {"instanceId": "012345", "region": "eu-west-1"} else: result = 'foo' return MockResponse(result) def setUp(self): self.error = False self.json_error = False requests.get = self.requests_get boto.ec2.connect_to_region = self.boto_ec2_connect_to_region self.conn = AWSConnection('test') def test_aws_available(self): self.assertTrue(self.conn.aws_available()) def test_on_role_change(self): self.assertTrue(self.conn._tag_ebs('master')) self.assertTrue(self.conn._tag_ec2('master')) self.assertTrue(self.conn.on_role_change('master')) def test_non_aws(self): self.error = True conn = AWSConnection('test') self.assertFalse(conn.aws_available()) self.assertFalse(conn._tag_ebs('master')) self.assertFalse(conn._tag_ec2('master')) def test_aws_bizare_response(self): self.json_error = True conn = AWSConnection('test') self.assertFalse(conn.aws_available()) def test_aws_tag_ebs_error(self): self.error = True self.assertFalse(self.conn._tag_ebs("master")) def test_aws_tag_ec2_error(self): self.error = True self.assertFalse(self.conn._tag_ec2("master")) @patch('sys.exit', Mock()) def test_main(self): self.assertIsNone(_main()) sys.argv = ['aws.py', 'on_start', 'replica', 'foo'] self.assertIsNone(_main())
def test_non_aws(self): self.error = True conn = AWSConnection('test') self.assertFalse(conn.aws_available()) self.assertFalse(conn._tag_ebs('master')) self.assertFalse(conn._tag_ec2('master'))