From 8986b9878fe534e773d033cd5e3bc19af5ae7a07 Mon Sep 17 00:00:00 2001 From: Tres Seaver Date: Wed, 19 Aug 2015 09:40:52 -0400 Subject: [PATCH 1/2] Open CSV tempfile in text mode. Prevents TypeError in 'writerow()' on Py3k. Fixes #1071. --- system_tests/bigquery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system_tests/bigquery.py b/system_tests/bigquery.py index a1972eb4a2e9..d67f3c248c5a 100644 --- a/system_tests/bigquery.py +++ b/system_tests/bigquery.py @@ -265,7 +265,7 @@ def test_load_table_from_storage_then_dump_table(self): blob = bucket.blob(BLOB_NAME) self.to_delete.insert(0, blob) - with tempfile.TemporaryFile() as csv_file: + with tempfile.TemporaryFile(mode='w+') as csv_file: writer = csv.writer(csv_file) writer.writerow(('Full Name', 'Age')) writer.writerows(ROWS) From 2ba24243a55fc57c92a185e96d564b32adf14276 Mon Sep 17 00:00:00 2001 From: Tres Seaver Date: Wed, 19 Aug 2015 09:42:08 -0400 Subject: [PATCH 2/2] Defer adding CSV blob to 'to_delete' until after upload succeeds. Avoids blowing up the cleanup code, stranding the bucket. --- system_tests/bigquery.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system_tests/bigquery.py b/system_tests/bigquery.py index d67f3c248c5a..46bc6050fa13 100644 --- a/system_tests/bigquery.py +++ b/system_tests/bigquery.py @@ -263,7 +263,6 @@ def test_load_table_from_storage_then_dump_table(self): self.to_delete.append(bucket) blob = bucket.blob(BLOB_NAME) - self.to_delete.insert(0, blob) with tempfile.TemporaryFile(mode='w+') as csv_file: writer = csv.writer(csv_file) @@ -272,6 +271,8 @@ def test_load_table_from_storage_then_dump_table(self): blob.upload_from_file( csv_file, rewind=True, content_type='text/csv') + self.to_delete.insert(0, blob) + dataset = CLIENT.dataset(DATASET_NAME) dataset.create() self.to_delete.append(dataset)