diff --git a/tests/test_record.py b/tests/test_record.py index ffae02a..e224059 100644 --- a/tests/test_record.py +++ b/tests/test_record.py @@ -9,27 +9,36 @@ from obsws_cli.app import app runner = CliRunner(mix_stderr=False) -def test_record_start_status_stop(): +def test_record_start(): """Test the record start command.""" - result = runner.invoke(app, ['record', 'start']) - assert result.exit_code == 0 - assert 'Recording started successfully.' in result.stdout - - time.sleep(0.5) # Wait for the recording to start - result = runner.invoke(app, ['record', 'status']) assert result.exit_code == 0 - assert 'Recording is in progress.' in result.stdout + active = 'Recording is in progress.' in result.stdout + + result = runner.invoke(app, ['record', 'start']) + if active: + assert result.exit_code != 0 + assert 'Recording is already in progress, cannot start.' in result.stderr + else: + assert result.exit_code == 0 + assert 'Recording started successfully.' in result.stdout + time.sleep(0.5) # Wait for the recording to start + + +def test_record_stop(): + """Test the record stop command.""" + result = runner.invoke(app, ['record', 'status']) + assert result.exit_code == 0 + active = 'Recording is in progress.' in result.stdout result = runner.invoke(app, ['record', 'stop']) - assert result.exit_code == 0 - assert 'Recording stopped successfully. Saved to:' in result.stdout - - time.sleep(0.5) # Wait for the recording to stop - - result = runner.invoke(app, ['record', 'status']) - assert result.exit_code == 0 - assert 'Recording is not in progress.' in result.stdout + if not active: + assert result.exit_code != 0 + assert 'Recording is not in progress, cannot stop.' in result.stderr + else: + assert result.exit_code == 0 + assert 'Recording stopped successfully.' in result.stdout + time.sleep(0.5) # Wait for the recording to stop def test_record_toggle(): diff --git a/tests/test_stream.py b/tests/test_stream.py index 60081b4..b48bb9a 100644 --- a/tests/test_stream.py +++ b/tests/test_stream.py @@ -16,14 +16,14 @@ def test_stream_start(): active = 'Streaming is in progress' in result.stdout result = runner.invoke(app, ['stream', 'start']) - assert result.exit_code == 0 - - time.sleep(2) # Wait for the stream to start if active: - assert 'Streaming is already in progress, cannot start.' in result.stdout + assert result.exit_code != 0 + assert 'Streaming is already in progress, cannot start.' in result.stderr else: + assert result.exit_code == 0 assert 'Streaming started successfully.' in result.stdout + time.sleep(1) # Wait for the streaming to start def test_stream_stop(): @@ -33,14 +33,14 @@ def test_stream_stop(): active = 'Streaming is in progress' in result.stdout result = runner.invoke(app, ['stream', 'stop']) - assert result.exit_code == 0 - - time.sleep(2) # Wait for the stream to stop if active: + assert result.exit_code == 0 assert 'Streaming stopped successfully.' in result.stdout + time.sleep(1) # Wait for the streaming to stop else: - assert 'Streaming is not in progress, cannot stop.' in result.stdout + assert result.exit_code != 0 + assert 'Streaming is not in progress, cannot stop.' in result.stderr def test_stream_toggle(): @@ -52,7 +52,7 @@ def test_stream_toggle(): result = runner.invoke(app, ['stream', 'toggle']) assert result.exit_code == 0 - time.sleep(2) # Wait for the stream to toggle + time.sleep(1) # Wait for the stream to toggle if active: assert 'Streaming stopped successfully.' in result.stdout