Skip to content

Commit

Permalink
[Resolves #5] Refactor Config class to ConfigReader class
Browse files Browse the repository at this point in the history
  • Loading branch information
theseanything committed Nov 15, 2017
1 parent 58ee0de commit a172d61
Show file tree
Hide file tree
Showing 32 changed files with 1,502 additions and 1,817 deletions.
28 changes: 11 additions & 17 deletions integration-tests/steps/change_sets.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from behave import *
import time
import os

from sceptre.environment import Environment
from sceptre.config_reader import ConfigReader
from botocore.exceptions import ClientError
from helpers import read_template_file, get_cloudformation_stack_name
from helpers import retry_boto_call
Expand Down Expand Up @@ -49,9 +48,8 @@ def step_impl(context, stack_name):

@when('the user creates change set "{change_set_name}" for stack "{stack_name}"')
def step_impl(context, change_set_name, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
stack = env.stacks[basename]
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
allowed_errors = {'ValidationError', 'ChangeSetNotFound'}
try:
stack.create_change_set(change_set_name)
Expand All @@ -66,9 +64,8 @@ def step_impl(context, change_set_name, stack_name):

@when('the user deletes change set "{change_set_name}" for stack "{stack_name}"')
def step_impl(context, change_set_name, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
stack = env.stacks[basename]
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
allowed_errors = {'ValidationError', 'ChangeSetNotFound'}
try:
stack.delete_change_set(change_set_name)
Expand All @@ -82,9 +79,8 @@ def step_impl(context, change_set_name, stack_name):

@when('the user lists change sets for stack "{stack_name}"')
def step_impl(context, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
stack = env.stacks[basename]
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
allowed_errors = {'ValidationError', 'ChangeSetNotFound'}
try:
response = stack.list_change_sets()
Expand All @@ -99,9 +95,8 @@ def step_impl(context, stack_name):

@when('the user executes change set "{change_set_name}" for stack "{stack_name}"')
def step_impl(context, change_set_name, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
stack = env.stacks[basename]
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
allowed_errors = {'ValidationError', 'ChangeSetNotFound'}
try:
stack.execute_change_set(change_set_name)
Expand All @@ -115,9 +110,8 @@ def step_impl(context, change_set_name, stack_name):

@when('the user describes change set "{change_set_name}" for stack "{stack_name}"')
def step_impl(context, change_set_name, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
stack = env.stacks[basename]
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
allowed_errors = {'ValidationError', 'ChangeSetNotFound'}
try:
response = stack.describe_change_set(change_set_name)
Expand Down
10 changes: 5 additions & 5 deletions integration-tests/steps/environments.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from behave import *
import os
import time
from sceptre.environment import Environment
from sceptre.config_reader import ConfigReader
from botocore.exceptions import ClientError
from helpers import read_template_file, get_cloudformation_stack_name
from helpers import retry_boto_call
Expand Down Expand Up @@ -43,25 +43,25 @@ def step_impl(context, environment_name, status):

@when('the user launches environment "{environment_name}"')
def step_impl(context, environment_name):
env = Environment(context.sceptre_dir, environment_name)
env = ConfigReader(context.sceptre_dir).construct_environment(environment_name)
env.launch()


@when('the user deletes environment "{environment_name}"')
def step_impl(context, environment_name):
env = Environment(context.sceptre_dir, environment_name)
env = ConfigReader(context.sceptre_dir).construct_environment(environment_name)
env.delete()


@when('the user describes environment "{environment_name}"')
def step_impl(context, environment_name):
env = Environment(context.sceptre_dir, environment_name)
env = ConfigReader(context.sceptre_dir).construct_environment(environment_name)
context.response = env.describe()


@when('the user describes resources in environment "{environment_name}"')
def step_impl(context, environment_name):
env = Environment(context.sceptre_dir, environment_name)
env = ConfigReader(context.sceptre_dir).construct_environment(environment_name)
context.response = env.describe_resources()


Expand Down
14 changes: 7 additions & 7 deletions integration-tests/steps/stack_policies.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import os

from botocore.exceptions import ClientError
from sceptre.environment import Environment
from sceptre.config_reader import ConfigReader
from helpers import get_cloudformation_stack_name, retry_boto_call


Expand All @@ -19,20 +19,20 @@ def step_impl(context, stack_name, state):

@when('the user unlocks stack "{stack_name}"')
def step_impl(context, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
try:
env.stacks[basename].unlock()
stack.unlock()
except ClientError as e:
context.error = e


@when('the user locks stack "{stack_name}"')
def step_impl(context, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
try:
env.stacks[basename].lock()
stack.lock()
except ClientError as e:
context.error = e

Expand Down
34 changes: 17 additions & 17 deletions integration-tests/steps/stacks.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from behave import *
import time
import os
from botocore.exceptions import ClientError
from sceptre.environment import Environment
from helpers import read_template_file, get_cloudformation_stack_name
from helpers import retry_boto_call

from sceptre.config_reader import ConfigReader


@given('stack "{stack_name}" does not exist')
def step_impl(context, stack_name):
Expand Down Expand Up @@ -61,10 +61,10 @@ def step_impl(context, stack_name, template_name):

@when('the user creates stack "{stack_name}"')
def step_impl(context, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
try:
env.stacks[basename].create()
stack.create()
except ClientError as e:
if e.response['Error']['Code'] == 'AlreadyExistsException' \
and e.response['Error']['Message'].endswith("already exists"):
Expand All @@ -75,10 +75,10 @@ def step_impl(context, stack_name):

@when('the user updates stack "{stack_name}"')
def step_impl(context, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
try:
env.stacks[basename].update()
stack.update()
except ClientError as e:
message = e.response['Error']['Message']
if e.response['Error']['Code'] == 'ValidationError' \
Expand All @@ -91,10 +91,10 @@ def step_impl(context, stack_name):

@when('the user deletes stack "{stack_name}"')
def step_impl(context, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
try:
env.stacks[basename].delete()
stack.delete()
except ClientError as e:
if e.response['Error']['Code'] == 'ValidationError' \
and e.response['Error']['Message'].endswith("does not exist"):
Expand All @@ -105,20 +105,20 @@ def step_impl(context, stack_name):

@when('the user launches stack "{stack_name}"')
def step_impl(context, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
try:
env.stacks[basename].launch()
stack.launch()
except Exception as e:
context.error = e


@when('the user describes the resources of stack "{stack_name}"')
def step_impl(context, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")

context.output = env.stacks[basename].describe_resources()
context.output = stack.describe_resources()


@then('stack "{stack_name}" exists in "{desired_status}" state')
Expand Down
15 changes: 8 additions & 7 deletions integration-tests/steps/templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
import os
import imp
import yaml
from sceptre.environment import Environment

from botocore.exceptions import ClientError
from sceptre.config_reader import ConfigReader


def set_template_path(context, stack_name, template_name):
Expand All @@ -27,20 +28,20 @@ def step_impl(context, stack_name, template_name):

@when('the user validates the template for stack "{stack_name}"')
def step_impl(context, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
try:
context.response = env.stacks[basename].template.validate()
context.response = stack.template.validate()
except ClientError as e:
context.error = e


@when('the user generates the template for stack "{stack_name}"')
def step_impl(context, stack_name):
environment_name, basename = os.path.split(stack_name)
env = Environment(context.sceptre_dir, environment_name)
config_reader = ConfigReader(context.sceptre_dir)
stack = config_reader.construct_stack(stack_name + ".yaml")
try:
context.output = env.stacks[basename].template.body
context.output = stack.template.body
except Exception as e:
context.error = e

Expand Down
Loading

0 comments on commit a172d61

Please sign in to comment.