From c40d2be646884e333098bdb5fb1941f8f327cba4 Mon Sep 17 00:00:00 2001 From: Ashley Gould Date: Sat, 14 Jul 2018 13:23:15 -0700 Subject: [PATCH] organizations: clean up for flake8 --- moto/organizations/models.py | 8 +-- moto/organizations/responses.py | 1 - moto/organizations/utils.py | 11 ++-- tests/test_organizations/object_syntax.py | 3 +- .../test_organizations_boto3.py | 53 +++++-------------- .../test_organizations_utils.py | 5 +- 6 files changed, 26 insertions(+), 55 deletions(-) diff --git a/moto/organizations/models.py b/moto/organizations/models.py index 50212af2..e1d59c1d 100644 --- a/moto/organizations/models.py +++ b/moto/organizations/models.py @@ -1,7 +1,6 @@ from __future__ import unicode_literals import datetime -import time from moto.core import BaseBackend, BaseModel from moto.core.utils import unix_time @@ -25,7 +24,7 @@ class FakeOrganization(BaseModel): 'Type': 'SERVICE_CONTROL_POLICY', 'Status': 'ENABLED' }] - + @property def arn(self): return ORGANIZATION_ARN_FORMAT.format(self.master_account_id, self.id) @@ -115,7 +114,7 @@ class OrganizationsBackend(BaseBackend): return new_account.create_account_status def describe_account(self, **kwargs): - account = [account for account in self.accounts + account = [account for account in self.accounts if account.account_id == kwargs['AccountId']][0] return account.describe() @@ -126,6 +125,3 @@ class OrganizationsBackend(BaseBackend): organizations_backend = OrganizationsBackend() - - - diff --git a/moto/organizations/responses.py b/moto/organizations/responses.py index 10288ded..7c8d4501 100644 --- a/moto/organizations/responses.py +++ b/moto/organizations/responses.py @@ -45,4 +45,3 @@ class OrganizationsResponse(BaseResponse): return json.dumps( self.organizations_backend.list_accounts() ) - diff --git a/moto/organizations/utils.py b/moto/organizations/utils.py index 5916dc5e..1b111c1a 100644 --- a/moto/organizations/utils.py +++ b/moto/organizations/utils.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import random import string -CHARSET=string.ascii_lowercase + string.digits +CHARSET = string.ascii_lowercase + string.digits ORG_ID_SIZE = 10 ROOT_ID_SIZE = 4 ACCOUNT_ID_SIZE = 12 @@ -11,24 +11,27 @@ CREATE_ACCOUNT_STATUS_ID_SIZE = 8 def make_random_org_id(): - # The regex pattern for an organization ID string requires "o-" + # The regex pattern for an organization ID string requires "o-" # followed by from 10 to 32 lower-case letters or digits. # e.g. 'o-vipjnq5z86' return 'o-' + ''.join(random.choice(CHARSET) for x in range(ORG_ID_SIZE)) + def make_random_root_id(): - # The regex pattern for a root ID string requires "r-" followed by + # The regex pattern for a root ID string requires "r-" followed by # from 4 to 32 lower-case letters or digits. # e.g. 'r-3zwx' return 'r-' + ''.join(random.choice(CHARSET) for x in range(ROOT_ID_SIZE)) + def make_random_account_id(): # The regex pattern for an account ID string requires exactly 12 digits. # e.g. '488633172133' return ''.join([random.choice(string.digits) for n in range(ACCOUNT_ID_SIZE)]) + def make_random_create_account_status_id(): - # The regex pattern for an create account request ID string requires + # The regex pattern for an create account request ID string requires # "car-" followed by from 8 to 32 lower-case letters or digits. # e.g. 'car-35gxzwrp' return 'car-' + ''.join(random.choice(CHARSET) for x in range(CREATE_ACCOUNT_STATUS_ID_SIZE)) diff --git a/tests/test_organizations/object_syntax.py b/tests/test_organizations/object_syntax.py index 35437be6..2779d1d0 100644 --- a/tests/test_organizations/object_syntax.py +++ b/tests/test_organizations/object_syntax.py @@ -4,7 +4,6 @@ models. This module will go away. """ import yaml -import moto from moto import organizations as orgs @@ -15,7 +14,7 @@ print(orgs.utils.make_random_account_id()) print(orgs.utils.make_random_create_account_id()) # models -my_org = orgs.models.FakeOrganization(feature_set = 'ALL') +my_org = orgs.models.FakeOrganization(feature_set='ALL') print(yaml.dump(my_org._describe())) #assert False diff --git a/tests/test_organizations/test_organizations_boto3.py b/tests/test_organizations/test_organizations_boto3.py index fa70f330..7ae8d957 100644 --- a/tests/test_organizations/test_organizations_boto3.py +++ b/tests/test_organizations/test_organizations_boto3.py @@ -1,13 +1,9 @@ from __future__ import unicode_literals import boto3 -import botocore.exceptions import sure # noqa -import yaml -import re import datetime -import moto from moto import mock_organizations from moto.organizations.models import ( MASTER_ACCOUNT_ID, @@ -53,21 +49,7 @@ def validate_organization(response): 'Type': 'SERVICE_CONTROL_POLICY', 'Status': 'ENABLED' }]) - # - #'Organization': { - # 'Id': 'string', - # 'Arn': 'string', - # 'FeatureSet': 'ALL'|'CONSOLIDATED_BILLING', - # 'MasterAccountArn': 'string', - # 'MasterAccountId': 'string', - # 'MasterAccountEmail': 'string', - # 'AvailablePolicyTypes': [ - # { - # 'Type': 'SERVICE_CONTROL_POLICY', - # 'Status': 'ENABLED'|'PENDING_ENABLE'|'PENDING_DISABLE' - # }, - # ] - #} + def validate_account(org, account): sorted(account.keys()).should.equal([ @@ -84,21 +66,13 @@ def validate_account(org, account): org['MasterAccountId'], org['Id'], account['Id'], - )) + )) account['Email'].should.match(EMAIL_REGEX) account['JoinedMethod'].should.be.within(['INVITED', 'CREATED']) account['Status'].should.be.within(['ACTIVE', 'SUSPENDED']) account['Name'].should.be.a(str) account['JoinedTimestamp'].should.be.a(datetime.datetime) - #'Account': { - # 'Id': 'string', - # 'Arn': 'string', - # 'Email': 'string', - # 'Name': 'string', - # 'Status': 'ACTIVE'|'SUSPENDED', - # 'JoinedMethod': 'INVITED'|'CREATED', - # 'JoinedTimestamp': datetime(2015, 1, 1) - #} + def validate_create_account_status(create_status): sorted(create_status.keys()).should.equal([ @@ -115,15 +89,7 @@ def validate_create_account_status(create_status): create_status['State'].should.equal('SUCCEEDED') create_status['RequestedTimestamp'].should.be.a(datetime.datetime) create_status['CompletedTimestamp'].should.be.a(datetime.datetime) - #'CreateAccountStatus': { - # 'Id': 'string', - # 'AccountName': 'string', - # 'State': 'IN_PROGRESS'|'SUCCEEDED'|'FAILED', - # 'RequestedTimestamp': datetime(2015, 1, 1), - # 'CompletedTimestamp': datetime(2015, 1, 1), - # 'AccountId': 'string', - # 'FailureReason': 'ACCOUNT_LIMIT_EXCEEDED'|'EMAIL_ALREADY_EXISTS'|'INVALID_ADDRESS'|'INVALID_EMAIL'|'CONCURRENT_ACCOUNT_MODIFICATION'|'INTERNAL_FAILURE' - #} + @mock_organizations def test_create_organization(): @@ -134,6 +100,7 @@ def test_create_organization(): response['Organization']['FeatureSet'].should.equal('ALL') #assert False + @mock_organizations def test_describe_organization(): client = boto3.client('organizations', region_name='us-east-1') @@ -148,23 +115,27 @@ mockname = 'mock-account' mockdomain = 'moto-example.org' mockemail = '@'.join([mockname, mockdomain]) + @mock_organizations def test_create_account(): client = boto3.client('organizations', region_name='us-east-1') client.create_organization(FeatureSet='ALL') create_status = client.create_account( - AccountName=mockname, Email=mockemail)['CreateAccountStatus'] + AccountName=mockname, Email=mockemail + )['CreateAccountStatus'] #print(yaml.dump(create_status, default_flow_style=False)) validate_create_account_status(create_status) create_status['AccountName'].should.equal(mockname) #assert False + @mock_organizations def test_describe_account(): client = boto3.client('organizations', region_name='us-east-1') org = client.create_organization(FeatureSet='ALL')['Organization'] account_id = client.create_account( - AccountName=mockname, Email=mockemail)['CreateAccountStatus']['AccountId'] + AccountName=mockname, Email=mockemail + )['CreateAccountStatus']['AccountId'] response = client.describe_account(AccountId=account_id) #print(yaml.dump(response, default_flow_style=False)) validate_account(org, response['Account']) @@ -172,6 +143,7 @@ def test_describe_account(): response['Account']['Email'].should.equal(mockemail) #assert False + @mock_organizations def test_list_accounts(): client = boto3.client('organizations', region_name='us-east-1') @@ -190,4 +162,3 @@ def test_list_accounts(): accounts[3]['Name'].should.equal(mockname + '3') accounts[2]['Email'].should.equal(mockname + '2' + '@' + mockdomain) #assert False - diff --git a/tests/test_organizations/test_organizations_utils.py b/tests/test_organizations/test_organizations_utils.py index 8144c327..3e29d5cb 100644 --- a/tests/test_organizations/test_organizations_utils.py +++ b/tests/test_organizations/test_organizations_utils.py @@ -1,7 +1,6 @@ from __future__ import unicode_literals import sure # noqa -import moto from moto.organizations import utils ORG_ID_REGEX = r'o-[a-z0-9]{%s}' % utils.ORG_ID_SIZE @@ -9,18 +8,22 @@ ROOT_ID_REGEX = r'r-[a-z0-9]{%s}' % utils.ROOT_ID_SIZE ACCOUNT_ID_REGEX = r'[0-9]{%s}' % utils.ACCOUNT_ID_SIZE CREATE_ACCOUNT_STATUS_ID_REGEX = r'car-[a-z0-9]{%s}' % utils.CREATE_ACCOUNT_STATUS_ID_SIZE + def test_make_random_org_id(): org_id = utils.make_random_org_id() org_id.should.match(ORG_ID_REGEX) + def test_make_random_root_id(): org_id = utils.make_random_root_id() org_id.should.match(ROOT_ID_REGEX) + def test_make_random_account_id(): account_id = utils.make_random_account_id() account_id.should.match(ACCOUNT_ID_REGEX) + def test_make_random_create_account_status_id(): create_account_status_id = utils.make_random_create_account_status_id() create_account_status_id.should.match(CREATE_ACCOUNT_STATUS_ID_REGEX)