Skip to content

Commit 8d45b3f

Browse files
authored
Merge pull request #98 from materials-data-facility/dev
submissions separate from prod when testing for duplicate source IDs
2 parents 90f6580 + 44ce70f commit 8d45b3f

File tree

3 files changed

+52
-2
lines changed

3 files changed

+52
-2
lines changed

aws/submit.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,16 @@ def lambda_handler(event, context):
167167

168168
#
169169
existing_source_name = metadata.get("mdf", {}).get("source_name", None)
170-
print("++++++++existing_source+++++++", existing_source_name)
170+
171171
is_test = submission_conf["test"]
172172

173+
# Distinguish test sources from prod. Tack -test on the end of the provided
174+
# name
175+
if is_test and existing_source_name:
176+
existing_source_name += "-test"
177+
178+
print("++++++++existing_source+++++++", existing_source_name)
179+
173180
if not existing_source_name:
174181
source_name = str(uuid.uuid4())
175182
existing_record = None

aws/tests/submit_dataset.feature

+13
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,19 @@ Feature: Submit Dataset
2525
And an automate flow started
2626
And I should receive a success result with the generated uuid and version 1.0
2727

28+
Scenario: Submit Test Dataset With Provided source_id
29+
Given I'm authenticated with MDF
30+
And I have a new MDF dataset to submit
31+
And I provide the source_id
32+
And I set the test flag to true
33+
When I submit the dataset
34+
35+
Then a dynamo record should be created with the provided source_id modified to indicate test
36+
And the dynamo record should be version 1.0
37+
And an automate flow started
38+
And I should receive a success result with test source-id, the generated uuid and version 1.0
39+
40+
2841
Scenario: Attempt to update another users record
2942
Given I'm authenticated with MDF
3043
And I have an update to another users record

aws/tests/test_submit.py

+31-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
def test_publish_provided_source_id():
1010
pass
1111

12+
@scenario('submit_dataset.feature', 'Submit Test Dataset With Provided source_id')
13+
def test_publish_provided_source_id_test():
14+
pass
15+
1216
@scenario('submit_dataset.feature', 'Submit Dataset')
1317
def test_submit():
1418
pass
@@ -72,6 +76,10 @@ def provided_source_id(mdf, mdf_environment):
7276
mdf_environment['source_id'] = 'my dataset'
7377
return mdf.get_submission()
7478

79+
@given("I set the test flag to true", target_fixture='mdf_submission')
80+
def set_test_flag(mdf):
81+
mdf.test=True
82+
return mdf.get_submission()
7583

7684
@given('I have a new MDF dataset to submit for an organization that mints DOIs',
7785
target_fixture='mdf_submission')
@@ -141,11 +149,21 @@ def no_error(submit_result, mdf_environment):
141149

142150
@then(parsers.parse('I should receive a success result with the generated uuid and version {version}'))
143151
def no_error_with_version(submit_result, mdf_environment, version):
152+
verify_success_result(submit_result, mdf_environment, version, is_test=False)
153+
154+
@then(parsers.parse('I should receive a success result with test source-id, the generated uuid and version {version}'))
155+
def no_error_test_submission_with_version(submit_result, mdf_environment, version):
156+
verify_success_result(submit_result, mdf_environment, version, is_test=True)
157+
158+
def verify_success_result(submit_result, mdf_environment, version, is_test=False):
144159
print("---------->", submit_result)
145160
assert submit_result['statusCode'] == 202
146161
body = json.loads(submit_result['body'])
147162
assert body['success']
148-
assert body['source_id'] == mdf_environment['source_id']
163+
if is_test:
164+
assert body['source_id'] == mdf_environment['source_id']+"-test"
165+
else:
166+
assert body['source_id'] == mdf_environment['source_id']
149167
assert body['version'] == version
150168

151169

@@ -218,3 +236,15 @@ def previous_versions_field_empty(dynamo_record):
218236
@then("the previous_versions field should be ['my dataset-1.0']")
219237
def previous_versions_after_update(dynamo_record):
220238
assert dynamo_record['previous_versions'] == ['my dataset-1.0']
239+
240+
241+
@then(
242+
"a dynamo record should be created with the provided source_id modified to indicate test", target_fixture="dynamo_record")
243+
def verify_test_source_id(mdf_environment):
244+
dynamo_manager = mdf_environment['dynamo_manager']
245+
dynamo_manager.create_status.assert_called()
246+
dynamo_record = dynamo_manager.create_status.call_args[0][0]
247+
print(dynamo_record)
248+
assert dynamo_record['source_id'] == mdf_environment['source_id']+"-test"
249+
assert dynamo_record['action_id'] == 'action-id-1'
250+
return dynamo_record

0 commit comments

Comments
 (0)