44import os
55import random
66import re
7+ import string
78from subprocess import getstatusoutput , getoutput
89
910prg = './abuse.py'
@@ -27,38 +28,68 @@ def test_usage():
2728
2829
2930# --------------------------------------------------
30- def test_bad_adjectives ():
31+ def test_bad_adjective_str ():
32+ """bad_adjectives"""
33+
34+ bad = random_string ()
35+ rv , out = getstatusoutput (f'{ prg } -a { bad } ' )
36+ assert rv != 0
37+ assert re .search (f"invalid int value: '{ bad } '" , out )
38+
39+
40+ # --------------------------------------------------
41+ def test_bad_adjective_num ():
3142 """bad_adjectives"""
3243
3344 n = random .choice (range (- 10 , 0 ))
34- rv , out = getstatusoutput ('{ } -a {}' . format ( prg , n ) )
45+ rv , out = getstatusoutput (f' { prg } -a { n } ' )
3546 assert rv != 0
36- assert re .search ('--adjectives "{}" must be > 1' . format ( n ) , out )
47+ assert re .search (f '--adjectives "{ n } " must be > 0' , out )
3748
3849
3950# --------------------------------------------------
40- def test_bad_number ():
51+ def test_bad_number_str ():
52+ """bad_number"""
53+
54+ bad = random_string ()
55+ rv , out = getstatusoutput (f'{ prg } -n { bad } ' )
56+ assert rv != 0
57+ assert re .search (f"invalid int value: '{ bad } '" , out )
58+
59+
60+ # --------------------------------------------------
61+ def test_bad_number_int ():
4162 """bad_number"""
4263
4364 n = random .choice (range (- 10 , 0 ))
44- rv , out = getstatusoutput ('{} -n {}' .format (prg , n ))
65+ rv , out = getstatusoutput (f'{ prg } -n { n } ' )
66+ assert rv != 0
67+ assert re .search (f'--number "{ n } " must be > 0' , out )
68+
69+
70+ # --------------------------------------------------
71+ def test_bad_seed ():
72+ """bad seed"""
73+
74+ bad = random_string ()
75+ rv , out = getstatusoutput (f'{ prg } -s { bad } ' )
4576 assert rv != 0
46- assert re .search ('--number "{}" must be > 1' . format ( n ) , out )
77+ assert re .search (f"invalid int value: ' { bad } '" , out )
4778
4879
4980# --------------------------------------------------
5081def test_01 ():
5182 """test"""
5283
53- out = getoutput ('{ } -s 1 -n 1'. format ( prg ) )
84+ out = getoutput (f' { prg } -s 1 -n 1' )
5485 assert out .strip () == 'You filthsome, cullionly fiend!'
5586
5687
5788# --------------------------------------------------
5889def test_02 ():
5990 """test"""
6091
61- out = getoutput ('{ } --seed 2'. format ( prg ) )
92+ out = getoutput (f' { prg } --seed 2' )
6293 expected = """
6394You corrupt, detestable beggar!
6495You peevish, foolish gull!
@@ -71,7 +102,7 @@ def test_02():
71102def test_03 ():
72103 """test"""
73104
74- out = getoutput ('{ } -s 3 -n 5 -a 1'. format ( prg ) )
105+ out = getoutput (f' { prg } -s 3 -n 5 -a 1' )
75106 expected = """
76107You infected villain!
77108You vile braggart!
@@ -86,9 +117,16 @@ def test_03():
86117def test_04 ():
87118 """test"""
88119
89- out = getoutput ('{ } --seed 4 --number 2 --adjectives 4'. format ( prg ) )
120+ out = getoutput (f' { prg } --seed 4 --number 2 --adjectives 4' )
90121 expected = """
91122You infected, lecherous, dishonest, rotten recreant!
92123You filthy, detestable, cullionly, base lunatic!
93124""" .strip ()
94125 assert out .strip () == expected
126+
127+
128+ # --------------------------------------------------
129+ def random_string ():
130+ """generate a random filename"""
131+
132+ return '' .join (random .choices (string .ascii_lowercase + string .digits , k = 5 ))
0 commit comments