You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+99-17Lines changed: 99 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,52 +58,134 @@ See the [LICENSE](https://github.com/awslabs/aws-data-wrangler/blob/master/LICEN
58
58
59
59
We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes.
60
60
61
-
## Environment
61
+
## Environments
62
62
63
-
* AWS Data Wrangler practically only makes integrations with Databases and AWS APIs. So we prefer to dedicate our energy / time writing integration tests instead of unit tests. We really like an end-to-end approach for all features.
63
+
We have hundreds of test functions that runs against several AWS Services. You don't need to test everything to open a Pull Request.
64
+
You can choose from three different environments to test your fixes/changes, based on what makes sense for your case.
64
65
65
-
* All integration tests are between the development environment and a remote and real AWS service.
66
+
*[Mocked test environment](#mocked-test-environment)
67
+
* Based on [moto](https://github.com/spulec/moto).
68
+
* Does not require real AWS resources
69
+
* Fastest approach
70
+
* Basically Limited only for Amazon S3 tests
66
71
67
-
* We have a Cloudformation to set up the AWS end (testing/cloudformation.yaml).
72
+
*[Data Lake test environment](#data-lake-test-environment)
**DISCLAIMER**: Make sure to know what you are doing. This steps will charge some services on your AWS account and requires a minimum security skill to keep your environment safe.
84
+
### Mocked test environment
72
85
73
86
* Pick up a Linux or MacOS.
74
-
75
87
* Install Python 3.6, 3.7 or 3.8
88
+
* Fork the AWS Data Wrangler repository and clone that into your development environment
89
+
* Go to the project's directory create a Python's virtual environment for the project
* To run all mocked test functions (Using 8 parallel processes):
106
+
107
+
``pytest -n 8 tests/test_moto``
108
+
109
+
### Data Lake test environment
110
+
111
+
**DISCLAIMER**: Make sure to know what you are doing. This steps will charge some services on your AWS account and requires a minimum security skill to keep your environment safe.
112
+
113
+
* Pick up a Linux or MacOS.
114
+
* Install Python 3.6, 3.7 or 3.8
77
115
* Fork the AWS Data Wrangler repository and clone that into your development environment
116
+
* Go to the project's directory create a Python's virtual environment for the project
* To run all data lake test functions (Using 8 parallel processes):
145
+
146
+
``pytest -n 8 tests/test_s3_athena``
147
+
148
+
### Full test environment
149
+
150
+
**DISCLAIMER**: Make sure to know what you are doing. This steps will charge some services on your AWS account and requires a minimum security skill to keep your environment safe.
151
+
152
+
* Pick up a Linux or MacOS.
153
+
* Install Python 3.6, 3.7 and 3.8
154
+
* Fork the AWS Data Wrangler repository and clone that into your development environment
79
155
* Go to the project's directory create a Python's virtual environment for the project
0 commit comments