3
3
from datetime import datetime , timedelta
4
4
5
5
import pytest
6
+ from nmdc_schema .nmdc_data import get_nmdc_schema_definition
6
7
from sqlalchemy .orm .session import Session
7
8
from starlette .testclient import TestClient
8
9
9
10
from nmdc_server import fakes
10
11
from nmdc_server .models import SubmissionEditorRole , SubmissionRole
11
12
from nmdc_server .schemas_submission import SubmissionMetadataSchema , SubmissionMetadataSchemaPatch
12
13
13
- from nmdc_schema .nmdc import SubmissionStatusEnum
14
+
15
+ def get_submission_status_enum ():
16
+ """Get SubmissionStatusEnum from the NMDC schema definition."""
17
+ schema = get_nmdc_schema_definition ()
18
+ return schema .enums ["SubmissionStatusEnum" ].permissible_values
19
+
20
+
21
+ SubmissionStatusEnum = get_submission_status_enum ()
22
+
14
23
15
24
@pytest .fixture
16
25
def suggest_payload ():
@@ -45,20 +54,18 @@ def test_get_metadata_submissions_mixs_as_non_admin(
45
54
response = client .request (method = "GET" , url = "/api/metadata_submission/mixs_report" )
46
55
assert response .status_code == 403
47
56
57
+
48
58
def test_print_submission_enum (db : Session , client : TestClient , logged_in_user ):
49
59
submission = fakes .MetadataSubmissionFactory (
50
60
author = logged_in_user , author_orcid = logged_in_user .orcid
51
61
)
52
62
print ("Available submission status enum values:" )
53
- for attr_name in dir (SubmissionStatusEnum ):
54
- attr_value = getattr (SubmissionStatusEnum , attr_name )
55
- if hasattr (attr_value , 'text' ):
56
- print (attr_value .text )
57
-
58
- print ('\n Specific enum value string' )
59
- print (SubmissionStatusEnum .InProgress .text )
63
+ print (SubmissionStatusEnum )
64
+ print ("\n Specific enum value string" )
65
+ print (SubmissionStatusEnum ["InProgress" ].title )
66
+
67
+ assert submission
60
68
61
- assert not submission
62
69
63
70
def test_get_metadata_submissions_mixs_as_admin (
64
71
db : Session , client : TestClient , logged_in_admin_user
@@ -74,7 +81,7 @@ def test_get_metadata_submissions_mixs_as_admin(
74
81
author = logged_in_user ,
75
82
author_orcid = logged_in_user .orcid ,
76
83
created = now ,
77
- status = SubmissionStatusEnum . SubmittedPendingReview . text ,
84
+ status = SubmissionStatusEnum [ " SubmittedPendingReview" ]. title ,
78
85
metadata_submission = {
79
86
"sampleData" : {
80
87
"built_env_data" : [
@@ -126,7 +133,7 @@ def test_get_metadata_submissions_mixs_as_admin(
126
133
127
134
data_row = rows [1 ] # first data row (data about Sample A in submission1)
128
135
assert data_row ["Submission ID" ] == str (submission1 .id )
129
- assert data_row ["Status" ] == SubmissionStatusEnum . SubmittedPendingReview . text
136
+ assert data_row ["Status" ] == SubmissionStatusEnum [ " SubmittedPendingReview" ]. title
130
137
assert data_row ["Sample Name" ] == "Sample A"
131
138
assert data_row ["Environmental Package/Extension" ] == "Env Pkg 1"
132
139
assert data_row ["Environmental Broad Scale" ] == "Broad Scale A"
@@ -139,7 +146,7 @@ def test_get_metadata_submissions_mixs_as_admin(
139
146
140
147
data_row = rows [2 ] # second data row (data about Sample B in submission1)
141
148
assert data_row ["Submission ID" ] == str (submission1 .id )
142
- assert data_row ["Status" ] == SubmissionStatusEnum . SubmittedPendingReview . text
149
+ assert data_row ["Status" ] == SubmissionStatusEnum [ " SubmittedPendingReview" ]. title
143
150
assert data_row ["Sample Name" ] == "Sample B"
144
151
assert data_row ["Environmental Package/Extension" ] == "Env Pkg 1"
145
152
assert data_row ["Environmental Broad Scale" ] == "Broad Scale B"
@@ -321,7 +328,7 @@ def test_get_metadata_submissions_report_as_admin(
321
328
"packageName" : [],
322
329
},
323
330
is_test_submission = True ,
324
- status = SubmissionStatusEnum . InProgress . text ,
331
+ status = SubmissionStatusEnum [ " InProgress" ]. title ,
325
332
source_client = "field_notes" ,
326
333
)
327
334
db .commit ()
@@ -362,7 +369,7 @@ def test_get_metadata_submissions_report_as_admin(
362
369
assert data_row ["PI Name" ] == "My PI name"
363
370
assert data_row ["PI Email" ] == "My PI email"
364
371
assert data_row ["Source Client" ] == "field_notes"
365
- assert data_row ["Status" ] == SubmissionStatusEnum . InProgress . text
372
+ assert data_row ["Status" ] == SubmissionStatusEnum [ " InProgress" ]. title
366
373
assert data_row ["Is Test Submission" ] == "True"
367
374
assert data_row ["Number of Samples" ] == "4"
368
375
assert isinstance (data_row ["Date Last Modified" ], str )
@@ -376,7 +383,9 @@ def test_get_metadata_submissions_report_as_admin(
376
383
assert data_row ["PI Name" ] == ""
377
384
assert data_row ["PI Email" ] == ""
378
385
assert data_row ["Source Client" ] == "" # upstream faker lacks `source_client` attribute
379
- assert data_row ["Status" ] == SubmissionStatusEnum .InProgress .text # matches value in upstream faker
386
+ assert (
387
+ data_row ["Status" ] == SubmissionStatusEnum ["InProgress" ].title
388
+ ) # matches value in upstream faker
380
389
assert data_row ["Is Test Submission" ] == "False"
381
390
assert data_row ["Number of Samples" ] == "0"
382
391
assert isinstance (data_row ["Date Last Modified" ], str )
0 commit comments