Skip to content

Commit 902246c

Browse files
author
Robert Engel
committed
Fix tests for CopyCommand / UnloadCommand
1 parent 9388462 commit 902246c

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

tests/test_copy_command.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
from unittest import TestCase
2-
from sqlalchemy import Table, Column, Integer, String, MetaData
3-
from sqlalchemy.sql import select, func
42
from redshift_sqlalchemy.dialect import CopyCommand
53

64

75
class TestCopyCommand(TestCase):
86
def setUp(self):
9-
''' Sets up a table and associate meta data for the test queries to build against
10-
'''
117
pass
128

139
def test_basic_copy_case(self):
14-
''' Tests that the simplest type of UnloadFromSelect works
10+
''' Tests that the simplest type of CopyCommand works
1511
'''
16-
expected_result = "copy t1 from 's3://mybucket/data/listing/' credentials 'aws_access_key_id=cookies;aws_secret_access_key=cookies'"
17-
insert = CopyCommand('t1', 's3://mybucket/data/listing/', 'cookies', 'cookies')
18-
self.assertEqual(expected_result, str(insert))
12+
expected_result = "COPY schema1.t1 FROM 's3://mybucket/data/listing/'\n" \
13+
" CREDENTIALS 'aws_access_key_id=cookies;aws_secret_access_key=cookies'\n" \
14+
" CSV\n TRUNCATECOLUMNS\n DELIMITER ','\n" \
15+
" IGNOREHEADER 0\n NULL '---'\n EMPTYASNULL\n" \
16+
" BLANKSASNULL;"
17+
insert = CopyCommand('schema1', 't1', 's3://mybucket/data/listing/', 'cookies', 'cookies')
18+
self.assertEqual(expected_result, str(insert).strip())

tests/test_unload_from_select.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,21 @@ def setUp(self):
1414
def test_basic_unload_case(self):
1515
''' Tests that the simplest type of UnloadFromSelect works
1616
'''
17-
expected_result = "unload ('SELECT count(t1.id) AS count_1 \nFROM t1') to 'cookies' credentials 'aws_access_key_id=cookies;aws_secret_access_key=cookies' delimiter ',' addquotes allowoverwrite parallel on"
18-
insert = UnloadFromSelect(select([func.count(self.t1.c.id)]), 'cookies', 'cookies', 'cookies')
19-
self.assertEqual(expected_result, str(insert))
17+
expected_result = "UNLOAD ('SELECT count(t1.id) AS count_1 \nFROM t1') TO 's3://bucket/key'\n " \
18+
"CREDENTIALS 'aws_access_key_id=cookies;aws_secret_access_key=cookies;token=cookies'\n" \
19+
" DELIMITER ','\n ADDQUOTES\n ALLOWOVERWRITE\n " \
20+
" PARALLEL ON;"
21+
insert = UnloadFromSelect(select([func.count(self.t1.c.id)]), 's3://bucket/key', 'cookies', 'cookies',
22+
'cookies')
23+
self.assertEqual(expected_result, str(insert).strip())
2024

2125
def test_parallel_off_unload_case(self):
2226
''' Tests that UnloadFromSelect handles parallel being set to off
2327
'''
24-
expected_result = "unload ('SELECT count(t1.id) AS count_1 \nFROM t1') to 'cookies' credentials 'aws_access_key_id=cookies;aws_secret_access_key=cookies' delimiter ',' addquotes allowoverwrite parallel off"
25-
insert = UnloadFromSelect(select([func.count(self.t1.c.id)]), 'cookies', 'cookies', 'cookies', 'off')
26-
self.assertEqual(expected_result, str(insert))
28+
expected_result = "UNLOAD ('SELECT count(t1.id) AS count_1 \nFROM t1') TO 's3://bucket/key'\n " \
29+
"CREDENTIALS 'aws_access_key_id=cookies;aws_secret_access_key=cookies;token=cookies'\n" \
30+
" DELIMITER ','\n ADDQUOTES\n ALLOWOVERWRITE\n " \
31+
" PARALLEL OFF;"
32+
insert = UnloadFromSelect(select([func.count(self.t1.c.id)]), 's3://bucket/key', 'cookies', 'cookies',
33+
'cookies', {'parallel': 'OFF'})
34+
self.assertEqual(expected_result, str(insert).strip())

0 commit comments

Comments
 (0)