@@ -82,18 +82,56 @@ def test_factory(monkeypatch):
8282 assert error == 'System not (yet?) implemented.'
8383
8484
85- def test_python_call (monkeypatch ):
86- import mss .__main__
87- mss .__main__ .main ()
88-
89- def raise_ ():
90- raise ScreenShotError ()
91-
92- pytest .skip ('Not working for now.' )
93- monkeypatch .setattr (mss .mss , '__init__' , raise_ )
94- with pytest .raises (ScreenShotError ):
95- mss .mss ()
96- monkeypatch .undo ()
85+ def test_entry_point (capsys , sct ):
86+ from mss .__main__ import main
87+ from datetime import datetime
88+
89+ for opt in ('-m' , '--monitor' ):
90+ main ([opt , '1' ])
91+ out , _ = capsys .readouterr ()
92+ assert out .endswith ('monitor-1.png\n ' )
93+ assert os .path .isfile ('monitor-1.png' )
94+ os .remove ('monitor-1.png' )
95+
96+ for opt in zip (('-m 1' , '--monitor=1' ), ('-q' , '--quiet' )):
97+ main (opt )
98+ out , _ = capsys .readouterr ()
99+ assert not out
100+ assert os .path .isfile ('monitor-1.png' )
101+ os .remove ('monitor-1.png' )
102+
103+ fmt = 'sct-{width}x{height}.png'
104+ for opt in ('-o' , '--out' ):
105+ main ([opt , fmt ])
106+ filename = fmt .format (** sct .monitors [1 ])
107+ out , _ = capsys .readouterr ()
108+ assert out .endswith (filename + '\n ' )
109+ assert os .path .isfile (filename )
110+ os .remove (filename )
111+
112+ fmt = 'sct_{mon}-{date:%Y-%m-%d}.png'
113+ for opt in ('-o' , '--out' ):
114+ main ([opt , fmt ])
115+ filename = fmt .format (mon = 1 , date = datetime .now ())
116+ out , _ = capsys .readouterr ()
117+ assert out .endswith (filename + '\n ' )
118+ assert os .path .isfile (filename )
119+ os .remove (filename )
120+
121+ coordinates = '2,12,40,67'
122+ for opt in ('-c' , '--coordinates' ):
123+ main ([opt , coordinates ])
124+ filename = 'sct-2x12_40x67.png'
125+ out , _ = capsys .readouterr ()
126+ assert out .endswith (filename + '\n ' )
127+ assert os .path .isfile (filename )
128+ os .remove (filename )
129+
130+ coordinates = '2,12,40'
131+ for opt in ('-c' , '--coordinates' ):
132+ main ([opt , coordinates ])
133+ out , _ = capsys .readouterr ()
134+ assert out == 'Coordinates syntax: top, left, width, height\n '
97135
98136
99137def test_grab_with_tuple (sct ):
0 commit comments