From aa6b9418437b374021d3969c7614bf9d5e760333 Mon Sep 17 00:00:00 2001 From: Jacob Nesbitt Date: Thu, 26 Mar 2020 15:15:03 -0400 Subject: [PATCH 1/3] Fix key specifier bug in csv uploader --- multinet/uploaders/csv.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/multinet/uploaders/csv.py b/multinet/uploaders/csv.py index fb7519b1..8bd91954 100644 --- a/multinet/uploaders/csv.py +++ b/multinet/uploaders/csv.py @@ -60,7 +60,7 @@ def validate_csv( fieldnames = rows[0].keys() - if key_field != "_key" and key_field not in fieldnames: + if key_field not in fieldnames: data_errors.append(KeyFieldDoesNotExist(key=key_field)) raise ValidationFailed(data_errors) @@ -142,7 +142,12 @@ def upload( # Perform validation. validate_csv(rows, key, overwrite) - if key != "_key" and overwrite: + # Once we reach here, we know that the specified key field must be present, + # and either: + # key == _key # noqa: E800 + # or key != _key and the _key field is not present + # or key != _key and _key is present, but overwrite = True + if key != "_key": rows = set_table_key(rows, key) # Set the collection, paying attention to whether the data contains From d6291044c2055e0dd74c829e29fa1a765df4482e Mon Sep 17 00:00:00 2001 From: Jacob Nesbitt Date: Fri, 27 Mar 2020 10:37:52 -0400 Subject: [PATCH 2/3] Update comments --- multinet/uploaders/csv.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/multinet/uploaders/csv.py b/multinet/uploaders/csv.py index 8bd91954..9e432023 100644 --- a/multinet/uploaders/csv.py +++ b/multinet/uploaders/csv.py @@ -144,9 +144,9 @@ def upload( # Once we reach here, we know that the specified key field must be present, # and either: - # key == _key # noqa: E800 - # or key != _key and the _key field is not present - # or key != _key and _key is present, but overwrite = True + # key == "_key" # noqa: E800 + # or key != "_key" and the "_key" field is not present + # or key != "_key" and "_key" is present, but overwrite = True if key != "_key": rows = set_table_key(rows, key) From 910fcd4c78324a83be72cfd8174da9ae12eb554f Mon Sep 17 00:00:00 2001 From: Jacob Nesbitt Date: Fri, 27 Mar 2020 10:45:51 -0400 Subject: [PATCH 3/3] Undo change that causes unexpected behavior --- multinet/uploaders/csv.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/multinet/uploaders/csv.py b/multinet/uploaders/csv.py index 9e432023..4d8e694f 100644 --- a/multinet/uploaders/csv.py +++ b/multinet/uploaders/csv.py @@ -60,7 +60,7 @@ def validate_csv( fieldnames = rows[0].keys() - if key_field not in fieldnames: + if key_field != "_key" and key_field not in fieldnames: data_errors.append(KeyFieldDoesNotExist(key=key_field)) raise ValidationFailed(data_errors)