diff --git a/requirements-py2.txt b/requirements-py2.txt index adef46f50..c409b190c 100644 --- a/requirements-py2.txt +++ b/requirements-py2.txt @@ -11,5 +11,6 @@ six>=1.6.1 ordereddict>=1.1 simplejson>=3.6.3 sphinx_rtd_theme +mock>=1.3.0 git+git://github.com/onyxfish/agate.git#egg=agate git+git://github.com/onyxfish/agate-excel.git#egg=agate-excel diff --git a/tests/test_utilities/test_csvclean.py b/tests/test_utilities/test_csvclean.py index 508157894..e4fcd783b 100644 --- a/tests/test_utilities/test_csvclean.py +++ b/tests/test_utilities/test_csvclean.py @@ -1,17 +1,24 @@ #!/usr/bin/env python import os +import sys import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch -from csvkit.utilities.csvclean import CSVClean +from csvkit.utilities.csvclean import CSVClean, launch_new_instance class TestCSVClean(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['csvclean', 'examples/bad.csv']): + launch_new_instance() + def test_simple(self): args = ['examples/bad.csv'] output_file = six.StringIO() diff --git a/tests/test_utilities/test_csvcut.py b/tests/test_utilities/test_csvcut.py index a581c62c0..088ea2960 100644 --- a/tests/test_utilities/test_csvcut.py +++ b/tests/test_utilities/test_csvcut.py @@ -1,19 +1,26 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +import sys + +import agate import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch -import agate - -from csvkit.utilities.csvcut import CSVCut from csvkit.exceptions import ColumnIdentifierError, RequiredHeaderError +from csvkit.utilities.csvcut import CSVCut, launch_new_instance class TestCSVCut(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['csvcut', 'examples/dummy.csv']): + launch_new_instance() + def test_simple(self): args = ['-c', '1,3', 'examples/dummy.csv'] output_file = six.StringIO() diff --git a/tests/test_utilities/test_csvformat.py b/tests/test_utilities/test_csvformat.py index fc483b279..a21add32d 100644 --- a/tests/test_utilities/test_csvformat.py +++ b/tests/test_utilities/test_csvformat.py @@ -1,17 +1,25 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +import sys + import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch -from csvkit.utilities.csvformat import CSVFormat +from csvkit.utilities.csvformat import CSVFormat, launch_new_instance from tests.utils import stdin_as_string class TestCSVFormat(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['csvformat', 'examples/dummy.csv']): + launch_new_instance() + def test_delimiter(self): args = ['-D', '|', 'examples/dummy.csv'] output_file = six.StringIO() diff --git a/tests/test_utilities/test_csvgrep.py b/tests/test_utilities/test_csvgrep.py index d15ac3943..389189ad2 100644 --- a/tests/test_utilities/test_csvgrep.py +++ b/tests/test_utilities/test_csvgrep.py @@ -1,18 +1,25 @@ #!/usr/bin/env python +import sys + +import agate import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch -import agate - -from csvkit.utilities.csvgrep import CSVGrep from csvkit.exceptions import ColumnIdentifierError +from csvkit.utilities.csvgrep import CSVGrep, launch_new_instance class TestCSVGrep(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['csvgrep', '-c', '1', '-m', '1', 'examples/dummy.csv']): + launch_new_instance() + def test_match(self): args = ['-c', '1', '-m', '1', 'examples/dummy.csv'] output_file = six.StringIO() diff --git a/tests/test_utilities/test_csvjoin.py b/tests/test_utilities/test_csvjoin.py index 5dda6c4a1..a1e8b51d2 100644 --- a/tests/test_utilities/test_csvjoin.py +++ b/tests/test_utilities/test_csvjoin.py @@ -1,15 +1,23 @@ #!/usr/bin/env python +import sys + import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch -from csvkit.utilities.csvjoin import CSVJoin +from csvkit.utilities.csvjoin import CSVJoin, launch_new_instance class TestCSVJoin(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['csvjoin', 'examples/join_a.csv', 'examples/join_b.csv']): + launch_new_instance() + def test_sequential(self): args = ['examples/join_a.csv', 'examples/join_b.csv'] output_file = six.StringIO() diff --git a/tests/test_utilities/test_csvjson.py b/tests/test_utilities/test_csvjson.py index 8f3562542..65f7f60ce 100644 --- a/tests/test_utilities/test_csvjson.py +++ b/tests/test_utilities/test_csvjson.py @@ -1,18 +1,25 @@ #!/usr/bin/env python import json +import sys import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch from csvkit.exceptions import NonUniqueKeyColumnException -from csvkit.utilities.csvjson import CSVJSON +from csvkit.utilities.csvjson import CSVJSON, launch_new_instance class TestCSVJSON(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['csvjson', 'examples/dummy.csv']): + launch_new_instance() + def test_simple(self): args = ['examples/dummy.csv'] output_file = six.StringIO() diff --git a/tests/test_utilities/test_csvlook.py b/tests/test_utilities/test_csvlook.py index 734f23a6d..1012a785e 100644 --- a/tests/test_utilities/test_csvlook.py +++ b/tests/test_utilities/test_csvlook.py @@ -1,16 +1,24 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +import sys + import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch -from csvkit.utilities.csvlook import CSVLook +from csvkit.utilities.csvlook import CSVLook, launch_new_instance class TestCSVLook(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['csvlook', 'examples/dummy.csv']): + launch_new_instance() + def test_simple(self): args = ['examples/dummy3.csv'] output_file = six.StringIO() diff --git a/tests/test_utilities/test_csvsort.py b/tests/test_utilities/test_csvsort.py index f8501ccf9..7c2dbeee6 100644 --- a/tests/test_utilities/test_csvsort.py +++ b/tests/test_utilities/test_csvsort.py @@ -1,19 +1,26 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +import sys + +import agate import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch -import agate - -from csvkit.utilities.csvsort import CSVSort from csvkit.exceptions import ColumnIdentifierError, RequiredHeaderError +from csvkit.utilities.csvsort import CSVSort, launch_new_instance class TestCSVSort(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['csvsort', 'examples/dummy.csv']): + launch_new_instance() + def test_sort_string_reverse(self): args = ['-c', '1', '-r', 'examples/testxls_converted.csv'] output_file = six.StringIO() diff --git a/tests/test_utilities/test_csvsql.py b/tests/test_utilities/test_csvsql.py index 2f596627b..a98d2a5cd 100644 --- a/tests/test_utilities/test_csvsql.py +++ b/tests/test_utilities/test_csvsql.py @@ -1,16 +1,24 @@ #!/usr/bin/env python +import sys + import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch -from csvkit.utilities.csvsql import CSVSQL +from csvkit.utilities.csvsql import CSVSQL, launch_new_instance from tests.utils import stdin_as_string class TestCSVSQL(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['csvsql', 'examples/dummy.csv']): + launch_new_instance() + def test_create_table(self): args = ['--table', 'foo', 'examples/testfixed_converted.csv'] output_file = six.StringIO() diff --git a/tests/test_utilities/test_csvstack.py b/tests/test_utilities/test_csvstack.py index 342a8dc79..780908f1c 100644 --- a/tests/test_utilities/test_csvstack.py +++ b/tests/test_utilities/test_csvstack.py @@ -1,17 +1,24 @@ #!/usr/bin/env python +import sys + +import agate import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch -import agate - -from csvkit.utilities.csvstack import CSVStack +from csvkit.utilities.csvstack import CSVStack, launch_new_instance class TestCSVStack(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['csvstack', 'examples/dummy.csv']): + launch_new_instance() + def test_single_file_stack(self): # stacking single file works fine args = ['examples/dummy.csv'] diff --git a/tests/test_utilities/test_csvstat.py b/tests/test_utilities/test_csvstat.py index 12c663db5..c72529f95 100644 --- a/tests/test_utilities/test_csvstat.py +++ b/tests/test_utilities/test_csvstat.py @@ -1,15 +1,23 @@ #!/usr/bin/env python +import sys + import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch -from csvkit.utilities.csvstat import CSVStat +from csvkit.utilities.csvstat import CSVStat, launch_new_instance class TestCSVStat(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['csvstack', 'examples/dummy.csv']): + launch_new_instance() + def test_runs(self): args = ['examples/test_utf8.csv'] output_file = six.StringIO() diff --git a/tests/test_utilities/test_in2csv.py b/tests/test_utilities/test_in2csv.py index 4657fe902..a1ada026a 100644 --- a/tests/test_utilities/test_in2csv.py +++ b/tests/test_utilities/test_in2csv.py @@ -1,15 +1,23 @@ #!/usr/bin/env python +import sys + import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch -from csvkit.utilities.in2csv import In2CSV +from csvkit.utilities.in2csv import In2CSV, launch_new_instance class TestIn2CSV(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['in2csv', 'examples/dummy.csv']): + launch_new_instance() + def test_convert_xls(self): args = ['-f', 'xls', 'examples/test.xls'] output_file = six.StringIO() diff --git a/tests/test_utilities/test_sql2csv.py b/tests/test_utilities/test_sql2csv.py index 110c9fbf7..a3027a7f8 100644 --- a/tests/test_utilities/test_sql2csv.py +++ b/tests/test_utilities/test_sql2csv.py @@ -1,19 +1,26 @@ #!/usr/bin/env python +import os +import sys + import six try: import unittest2 as unittest + from mock import patch except ImportError: import unittest + from unittest.mock import patch -import os - -from csvkit.utilities.sql2csv import SQL2CSV from csvkit.utilities.csvsql import CSVSQL +from csvkit.utilities.sql2csv import SQL2CSV, launch_new_instance from tests.utils import stdin_as_string class TestSQL2CSV(unittest.TestCase): + def test_launch_new_instance(self): + with patch.object(sys, 'argv', ['sql2csv', '--query', 'select 1']): + launch_new_instance() + def setUp(self): self.db_file = "foo.db"