1- from faker_cli .cli import main
2- from click .testing import CliRunner
31import json
2+
43import deltalake
4+ from click .testing import CliRunner
5+
6+ from faker_cli .cli import main
57
68
79# Test that help is provided if the user provides no arguments
@@ -44,6 +46,7 @@ def test_numlines():
4446 lines = result .output .strip ().splitlines ()
4547 assert len (lines ) == (6 if format == "csv" else 5 )
4648
49+
4750def test_custom_column_names ():
4851 runner = CliRunner ()
4952 result = runner .invoke (main , ["pyint,user_name" , "-f" , "json" , "-c" , "first,second" ])
@@ -53,9 +56,10 @@ def test_custom_column_names():
5356 assert len (data .keys ()) == 2
5457 assert list (data ) == ["first" , "second" ]
5558
59+
5660def test_deltalake_output (tmp_path ):
5761 runner = CliRunner ()
58- file = tmp_path / ' table'
62+ file = tmp_path / " table"
5963 result = runner .invoke (main , ["pyint,user_name" , "-f" , "deltalake" , "-o" , file ])
6064 assert result .exit_code == 0
6165 delta_table = deltalake .DeltaTable (file )
@@ -65,4 +69,34 @@ def test_deltalake_output(tmp_path):
6569
6670 column_names = arrow_table .column_names
6771 assert column_names == ["pyint" , "user_name" ]
68- assert arrow_table .num_columns == 2
72+ assert arrow_table .num_columns == 2
73+
74+
75+ def test_provider_args ():
76+ runner = CliRunner ()
77+ result = runner .invoke (main , ["-n" , "10" , "pyint(1;10)" , "-f" , "json" , "-c" , "id" ])
78+ assert result .exit_code == 0
79+ lines = result .output .strip ().splitlines ()
80+ for line in lines :
81+ data : dict = json .loads (line )
82+ assert data ["id" ] in range (1 , 11 )
83+
84+
85+ def test_unique_provider_args ():
86+ runner = CliRunner ()
87+ result = runner .invoke (main , ["-n" , "10" , "unique.pyint(1;10)" , "-f" , "json" , "-c" , "id" ])
88+ assert result .exit_code == 0
89+ lines = result .output .strip ().splitlines ()
90+ vals = []
91+ for line in lines :
92+ data : dict = json .loads (line )
93+ assert data ["id" ] in range (1 , 11 )
94+ vals .append (data ["id" ])
95+
96+ assert set (vals ) == set (range (1 , 11 ))
97+
98+
99+ def test_unique_provider_args_limit ():
100+ runner = CliRunner ()
101+ result = runner .invoke (main , ["-n" , "10" , "unique.pyint(1;5)" , "-f" , "json" , "-c" , "id" ])
102+ assert result .exit_code == 1
0 commit comments