@@ -87,42 +87,68 @@ def run_cli(self, *args, commands=()):
87
87
def test_interact (self ):
88
88
out , err = self .run_cli ()
89
89
self .assertIn (self .MEMORY_DB_MSG , err )
90
- self .assertIn (self .PS1 , out )
90
+ self .assertIn (self .MEMORY_DB_MSG , err )
91
+ self .assertTrue (out .endswith (self .PS1 ))
92
+ self .assertEqual (out .count (self .PS1 ), 1 )
93
+ self .assertEqual (out .count (self .PS2 ), 0 )
91
94
92
95
def test_interact_quit (self ):
93
96
out , err = self .run_cli (commands = (".quit" ,))
94
- self .assertIn (self .PS1 , out )
97
+ self .assertIn (self .MEMORY_DB_MSG , err )
98
+ self .assertTrue (out .endswith (self .PS1 ))
99
+ self .assertEqual (out .count (self .PS1 ), 1 )
100
+ self .assertEqual (out .count (self .PS2 ), 0 )
95
101
96
102
def test_interact_version (self ):
97
103
out , err = self .run_cli (commands = (".version" ,))
98
104
self .assertIn (self .MEMORY_DB_MSG , err )
105
+ self .assertIn (sqlite3 .sqlite_version + "\n " , out )
106
+ self .assertTrue (out .endswith (self .PS1 ))
107
+ self .assertEqual (out .count (self .PS1 ), 2 )
108
+ self .assertEqual (out .count (self .PS2 ), 0 )
99
109
self .assertIn (sqlite3 .sqlite_version , out )
100
110
101
111
def test_interact_valid_sql (self ):
102
112
out , err = self .run_cli (commands = ("SELECT 1;" ,))
103
113
self .assertIn (self .MEMORY_DB_MSG , err )
104
- self .assertIn ("(1,)" , out )
114
+ self .assertIn ("(1,)\n " , out )
115
+ self .assertTrue (out .endswith (self .PS1 ))
116
+ self .assertEqual (out .count (self .PS1 ), 2 )
117
+ self .assertEqual (out .count (self .PS2 ), 0 )
118
+
119
+ def test_interact_incomplete_multiline_sql (self ):
120
+ out , err = self .run_cli (commands = ("SELECT 1" ,))
121
+ self .assertIn (self .MEMORY_DB_MSG , err )
122
+ self .assertTrue (out .endswith (self .PS2 ))
123
+ self .assertEqual (out .count (self .PS1 ), 1 )
124
+ self .assertEqual (out .count (self .PS2 ), 1 )
105
125
106
126
def test_interact_valid_multiline_sql (self ):
107
127
out , err = self .run_cli (commands = ("SELECT 1\n ;" ,))
108
128
self .assertIn (self .MEMORY_DB_MSG , err )
109
129
self .assertIn (self .PS2 , out )
110
- self .assertIn ("(1,)" , out )
130
+ self .assertIn ("(1,)\n " , out )
131
+ self .assertTrue (out .endswith (self .PS1 ))
132
+ self .assertEqual (out .count (self .PS1 ), 2 )
133
+ self .assertEqual (out .count (self .PS2 ), 1 )
111
134
112
135
def test_interact_invalid_sql (self ):
113
136
out , err = self .run_cli (commands = ("sel;" ,))
114
137
self .assertIn (self .MEMORY_DB_MSG , err )
115
138
self .assertIn ("OperationalError (SQLITE_ERROR)" , err )
139
+ self .assertTrue (out .endswith (self .PS1 ))
140
+ self .assertEqual (out .count (self .PS1 ), 2 )
141
+ self .assertEqual (out .count (self .PS2 ), 0 )
116
142
117
143
def test_interact_on_disk_file (self ):
118
144
self .addCleanup (unlink , TESTFN )
119
145
120
146
out , err = self .run_cli (TESTFN , commands = ("CREATE TABLE t(t);" ,))
121
147
self .assertIn (TESTFN , err )
122
- self .assertIn ( self .PS1 , out )
148
+ self .assertTrue ( out . endswith ( self .PS1 ) )
123
149
124
150
out , _ = self .run_cli (TESTFN , commands = ("SELECT count(t) FROM t;" ,))
125
- self .assertIn ("(0,)" , out )
151
+ self .assertIn ("(0,)\n " , out )
126
152
127
153
128
154
if __name__ == "__main__" :
0 commit comments