Compare commits

...

5 Commits

Author SHA1 Message Date
530daced56 ensure record stop contains 'Saved to:' 2025-05-28 14:36:33 +01:00
5bfd642032 upd stream/record tests
test different exit codes and outputs according to current stream/record state
2025-05-28 14:28:38 +01:00
f8d3ed75cb ensure studio mode disabled at end of tests 2025-05-28 14:27:52 +01:00
36e260efde ensure tests are randomized 2025-05-28 14:27:41 +01:00
49f918db00 write stream not in progress status to stdout
patch bump
2025-05-28 14:27:25 +01:00
6 changed files with 41 additions and 28 deletions

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2025-present onyx-and-iris <code@onyxandiris.online>
#
# SPDX-License-Identifier: MIT
__version__ = "0.14.0"
__version__ = "0.14.1"

View File

@ -80,4 +80,4 @@ def status(ctx: typer.Context):
else:
out_console.print('Streaming is in progress.')
else:
err_console.print('Streaming is not in progress.')
out_console.print('Streaming is not in progress.')

View File

@ -47,7 +47,7 @@ cli = "obsws-cli {args:}"
man = "python man/generate.py --output=./man"
[tool.hatch.envs.hatch-test]
dependencies = ["pytest>=8.3.5"]
randomize = true
[tool.hatch.envs.types]
extra-dependencies = ["mypy>=1.0.0"]

View File

@ -138,6 +138,10 @@ def pytest_sessionfinish(session, exitstatus):
if resp.output_active:
session.obsws.stop_replay_buffer()
resp = session.obsws.get_studio_mode_enabled()
if resp.studio_mode_enabled:
session.obsws.set_studio_mode_enabled(False)
# Close the OBS WebSocket client connection
session.obsws.disconnect()

View File

@ -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. Saved to:' in result.stdout
time.sleep(0.5) # Wait for the recording to stop
def test_record_toggle():

View File

@ -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