Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mock AWS endpoints to simulate taskcat outputs without an AWS account #12

Open
ShahradR opened this issue Apr 11, 2020 · 1 comment
Open
Assignees
Labels
enhancement New feature or request

Comments

@ShahradR
Copy link
Owner

To test the GitHub Action, we need to ensure that the action properly responds to taskcat's different outputs.

Because taskcat is a black box, we need to modify its dependencies and force it down different paths, and produce the outputs we need to test. AWS itself is its main dependency, and largely controls taskcat's behaviors and outputs.

This issue is to investigate a method of mocking those calls, and controlling taskcat's output without using an actual AWS account.

@ShahradR ShahradR added the enhancement New feature or request label Apr 11, 2020
@ShahradR ShahradR self-assigned this Apr 11, 2020
@ShahradR
Copy link
Owner Author

spulec/moto is a library that mocks AWS's boto library. boto is used by taskcat to communicate with the Amazon cloud.

From our perspective, taskcat is a black box – we can't modify the code and inject moto mocks. To work around this, moto provides a stand-alone server mode, which creates a web server that mocks AWS endpoints, outside the application.

To make this testing viable, we need a seam where the moto server's URL is passed to taskcat and used instead of the actual AWS endpoints.

ShahradR added a commit that referenced this issue May 28, 2020
Document a potential approach to mocking AWS calls using the
spulec/moto project.

It also starts documenting the relationship between the boto3 and
botocore libraries, since tasckat uses both.

Associated issue: #12
ShahradR added a commit that referenced this issue Jul 8, 2020
This is a squashed commit from the ShahradR/git-template repository. It
introduces the changes made in the following commits:

f11ede1 Merge pull request #12 from ShahradR/develop
adff551 Merge pull request #11 from ShahradR/feature/pre-commit-v2
bfa0b5b fix(action): bump pre-commit GitHub Action version
ec11c9b Merge pull request #10 from ShahradR/feature/semantic-release
2c0f7dc feat(action): add support for semantic-release
1c02cc0 Merge pull request #7 from ShahradR/develop
f16263a fix(pre-commit): set up Python and Node.js

See pull requests ShahradR/git-template#7, ShahradR/git-template#10,
ShahradR/git-template#11, and ShahradR/git-template#12 for more details.
ShahradR added a commit that referenced this issue Jul 8, 2020
This is a squashed commit from the ShahradR/git-template repository. It
introduces the changes made in the following commits:

f11ede1 Merge pull request #12 from ShahradR/develop
adff551 Merge pull request #11 from ShahradR/feature/pre-commit-v2
bfa0b5b fix(action): bump pre-commit GitHub Action version
ec11c9b Merge pull request #10 from ShahradR/feature/semantic-release
2c0f7dc feat(action): add support for semantic-release
1c02cc0 Merge pull request #7 from ShahradR/develop
f16263a fix(pre-commit): set up Python and Node.js

See pull requests ShahradR/git-template#7, ShahradR/git-template#10,
ShahradR/git-template#11, and ShahradR/git-template#12 for more details.
ShahradR added a commit that referenced this issue Jul 8, 2020
This is a squashed commit from the ShahradR/git-template repository. It
introduces the changes made in the following commits:

f11ede1 Merge pull request #12 from ShahradR/develop
adff551 Merge pull request #11 from ShahradR/feature/pre-commit-v2
bfa0b5b fix(action): bump pre-commit GitHub Action version
ec11c9b Merge pull request #10 from ShahradR/feature/semantic-release
2c0f7dc feat(action): add support for semantic-release
1c02cc0 Merge pull request #7 from ShahradR/develop
f16263a fix(pre-commit): set up Python and Node.js

See pull requests ShahradR/git-template#7, ShahradR/git-template#10,
ShahradR/git-template#11, and ShahradR/git-template#12 for more details.
ShahradR added a commit that referenced this issue Jul 12, 2020
This is a squashed commit from the ShahradR/git-template repository. It
introduces the changes made in the following commits:

f11ede1 Merge pull request #12 from ShahradR/develop
adff551 Merge pull request #11 from ShahradR/feature/pre-commit-v2
bfa0b5b fix(action): bump pre-commit GitHub Action version
ec11c9b Merge pull request #10 from ShahradR/feature/semantic-release
2c0f7dc feat(action): add support for semantic-release
1c02cc0 Merge pull request #7 from ShahradR/develop
f16263a fix(pre-commit): set up Python and Node.js

See pull requests ShahradR/git-template#7, ShahradR/git-template#10,
ShahradR/git-template#11, and ShahradR/git-template#12 for more details.
ShahradR added a commit that referenced this issue Jul 12, 2020
This is a squashed commit from the ShahradR/git-template repository. It
introduces the changes made in the following commits:

f11ede1 Merge pull request #12 from ShahradR/develop
adff551 Merge pull request #11 from ShahradR/feature/pre-commit-v2
bfa0b5b fix(action): bump pre-commit GitHub Action version
ec11c9b Merge pull request #10 from ShahradR/feature/semantic-release
2c0f7dc feat(action): add support for semantic-release
1c02cc0 Merge pull request #7 from ShahradR/develop
f16263a fix(pre-commit): set up Python and Node.js

See pull requests ShahradR/git-template#7, ShahradR/git-template#10,
ShahradR/git-template#11, and ShahradR/git-template#12 for more details.
ShahradR added a commit that referenced this issue Nov 29, 2020
feat(action): update CI workflow to create releases and bump pre-commit to v2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant