MCPcopy Create free account

hub / github.com/Screenly/Anthias / functions

Functions1,832 in github.com/Screenly/Anthias

Functiontest_idempotent_rerun
(home_dir: str)
tests/test_migrate_legacy_paths.py:128
Functiontest_iis_rewrite_host_proxy_with_trusted_origin_passes
Issue #2900 fix: when the operator lists the public hostname they actually serve Anthias under in CSRF_TRUSTED_ORIGINS, Django's stock check a
tests/test_csrf.py:213
Functiontest_iis_rewrite_host_proxy_without_trusted_origin_rejected
Today's behaviour: IIS rewrites Host upstream, no trusted origin is configured, and the same-host fallback can't bridge two genuinely differen
tests/test_csrf.py:196
Functiontest_image_corrupt_input_raises_clean_error
Pillow's UnidentifiedImageError must bubble out so the on_failure hook can write metadata.error_message — never leave a half-written staging f
tests/test_processing.py:326
Functiontest_image_decompression_bomb_is_rejected
A malicious image (or a misclassified scan) advertising enormous dimensions must be rejected *before* any pixel decode happens. The check read
tests/test_processing.py:347
Functiontest_image_heif_converts_to_lossless_webp
HEIC / HEIF (case-insensitive) → WebP. RGBA so the alpha handling on the WebP write path is exercised even though HEIF sources commonly arrive
tests/test_processing.py:301
Functiontest_image_jpeg_routes_no_op
A caller that mis-routed a JPEG (or .png, .webp) through this task must not re-encode it — the row already plays. Just clear is_processing and
tests/test_processing.py:475
Functiontest_image_missing_file_raises_filenotfound
Source file disappeared between row creation and task pickup (cleanup raced operator, disk pressure). Fail clean so on_failure writes the erro
tests/test_processing.py:462
Functiontest_image_no_op_path_clears_stale_error_message
A row being re-uploaded after a previous failed conversion carries ``metadata.error_message``. When the new upload is a format the pipeline do
tests/test_processing.py:494
Functiontest_image_normalises_to_lossless_webp_across_formats
Every entry in ``NORMALIZE_IMAGE_EXTS`` produces a valid WebP output: the original is removed, the row's URI is swapped to the new ``.webp`` p
tests/test_processing.py:251
Functiontest_image_partial_write_cleans_staging
If Pillow writes some bytes to the staging file and *then* raises mid-encode (disk pressure, codec crash), the runner must clean up the partia
tests/test_processing.py:398
Functiontest_image_pipeline_clears_prior_error
A re-uploaded asset whose previous attempt left an error message in metadata must clear that on success — the operator's next refresh shouldn'
tests/test_processing.py:543
Functiontest_image_rename_failure_cleans_staging
The atomic ``os.replace(staging, final_uri)`` normally succeeds in <1ms, but a filesystem-full / permissions / cross-device error there would
tests/test_processing.py:430
Functiontest_image_row_already_finalized_no_op
Duplicate task fire on an already-finalised row → no-op. Same contract download_youtube_asset enforces.
tests/test_processing.py:518
Functiontest_image_row_missing_no_op
Row deleted between dispatch and pickup → no-op.
tests/test_processing.py:537
Functiontest_inactive_row_has_no_drag_handle
( reset_assets: None, page: Page )
tests/test_app.py:511
Functiontest_info_v1_endpoint
( redis_get_mock: Any, filesizeformat_mock: Any, get_load_avg_mock: Any, is_up_to_date_mock: A
src/anthias_server/api/tests/test_info_endpoints.py:57
Functiontest_info_v2_endpoint
( getenv_mock: Any, get_node_ip_mock: Any, mac_address_mock: Any, virtual_memory_mock: Any,
src/anthias_server/api/tests/test_info_endpoints.py:142
Methodtest_init_command_is_valid_sqlite
(self, tmp_path: Path)
tests/test_django_db_settings.py:31
Functiontest_integrations_balena_environment
( mock_getenv: Any, mock_is_balena: Any, api_client: APIClient, integrations_url: str, )
src/anthias_server/api/tests/test_v2_endpoints.py:465
Functiontest_integrations_non_balena_environment
( mock_is_balena: Any, api_client: APIClient, integrations_url: str )
src/anthias_server/api/tests/test_v2_endpoints.py:497
Functiontest_integrations_renders
(client: Client)
tests/test_template_views.py:75
Functiontest_internal_auth_works_without_basic_auth
Viewer has no operator BasicAuth credentials; the internal header is sufficient for this side-effect-only endpoint.
tests/test_recheck_endpoint.py:141
Functiontest_intro_step_advances_to_token_step
The "I have a token" button must transition Alpine state from intro → token; the token surface is the only one visible after.
tests/test_migrate_to_screenly.py:176
Methodtest_invalid_token_skips_group_creation
( self, validate_mock: MagicMock, group_mock: MagicMock, api_client: APIClient
src/anthias_server/api/tests/test_screenly_migration.py:490
Functiontest_invalid_token_surfaces_inline_error
A 200 response with ``valid: false`` must render the rejection message inline; the user stays on the token step (no advance to asset picker).
tests/test_migrate_to_screenly.py:196
Functiontest_is_balena_app_false
(monkeypatch: Any)
tests/test_utils.py:161
Functiontest_is_balena_app_true
(monkeypatch: Any)
tests/test_utils.py:156
Functiontest_is_ci_false
(monkeypatch: Any)
tests/test_utils.py:151
Functiontest_is_ci_true
(monkeypatch: Any)
tests/test_utils.py:146
Functiontest_is_demo_node_false
(monkeypatch: Any)
tests/test_utils.py:171
Functiontest_is_demo_node_true
(monkeypatch: Any)
tests/test_utils.py:166
Functiontest_is_docker_uses_dockerenv_marker
()
tests/test_utils.py:176
Functiontest_is_legacy_sha256
(value: str, expected: bool)
tests/test_auth.py:90
Functiontest_is_playing_false_when_process_exited
(gstfb: _GstFixtures)
tests/test_media_player.py:686
Functiontest_is_playing_returns_false_after_stop
(mpv: _MPVFixtures)
tests/test_media_player.py:184
Functiontest_is_playing_returns_false_before_play
(mpv: _MPVFixtures)
tests/test_media_player.py:191
Functiontest_is_playing_returns_true_after_play
(mpv: _MPVFixtures)
tests/test_media_player.py:178
Functiontest_is_streaming_uri_false_for_non_streams
(uri: str)
tests/test_remote_video.py:165
Functiontest_is_streaming_uri_true_for_streams
(uri: str)
tests/test_remote_video.py:143
Functiontest_is_up_to_date_github_error_no_cache_returns_false
First-run fail-pessimistic: don't claim 'up to date' when we have never successfully checked.
tests/test_github.py:310
Functiontest_is_up_to_date_github_error_with_cached_verdict_uses_it
( github_env: None, redis_data: dict[str, str] )
tests/test_github.py:263
Functiontest_is_up_to_date_local_ahead_returns_true
A local dev bump (e.g. master tip past the last release tag) is still 'up to date' — the indicator is about being behind, not matching exactly
tests/test_github.py:219
Functiontest_is_up_to_date_local_behind_returns_false
( github_env: None, redis_data: dict[str, str] )
tests/test_github.py:204
Functiontest_is_up_to_date_malformed_remote_tag_falls_back
( github_env: None, redis_data: dict[str, str] )
tests/test_github.py:326
Functiontest_is_up_to_date_malformed_remote_tag_no_cache_returns_false
( github_env: None, )
tests/test_github.py:343
Functiontest_is_up_to_date_matching_versions_returns_true
( github_env: None, redis_data: dict[str, str] )
tests/test_github.py:189
Functiontest_is_up_to_date_unparseable_local_string_suppresses_indicator
( github_env: None, )
tests/test_github.py:250
Functiontest_is_up_to_date_unparseable_local_suppresses_indicator
Dev builds without a parseable CalVer get no comparison and no pill. The remote fetch isn't even attempted in that case.
tests/test_github.py:237
Functiontest_is_up_to_date_verdict_cache_does_not_leak_across_releases
An upgrade during a GitHub outage must not reuse the previous version's verdict — that verdict was computed against the OLD installed release,
tests/test_github.py:289
Functiontest_is_wayland_board_keys_off_qpa
Issue #3044: _is_wayland_board() must recognise every cage board (x86, arm64, pi5), not just x86. Keying off QT_QPA_PLATFORM mirrors the Docke
tests/test_viewer.py:1216
Functiontest_is_wayland_board_true_for_pi5
The concrete regression: a Pi 5 viewer (DEVICE_TYPE=pi5, QT_QPA_PLATFORM=wayland from the Dockerfile) is now correctly classified as a Wayland
tests/test_viewer.py:1225
Functiontest_is_youtube_url_handles_whitespace
Operators paste from clipboard; trailing whitespace shouldn't flip the classification.
tests/test_youtube_helper.py:54
Functiontest_is_youtube_url_recognises_canonical_forms
(uri: str)
tests/test_youtube_helper.py:33
Functiontest_is_youtube_url_rejects_other_inputs
(uri: str)
tests/test_youtube_helper.py:50
Functiontest_json_dump_serialises_datetime
()
tests/test_utils.py:197
Functiontest_json_tz
()
tests/test_utils.py:33
Functiontest_keep_same_position_on_playlist_update
( restore_shuffle_setting: None, )
tests/test_scheduler.py:171
Methodtest_keeps_events_without_exc_info
(self)
tests/test_sentry.py:160
Methodtest_keeps_ordinary_exceptions
(self)
tests/test_sentry.py:151
Methodtest_keeps_wrapper_when_context_is_suppressed
(self)
tests/test_sentry.py:102
Functiontest_legacy_symlinked_uri_is_preserved
Pre-rebrand DB rows reference paths like ~/screenly_assets/foo.png, which after upgrade is a symlink to ~/anthias_assets/foo.png. The orp
tests/test_celery_tasks.py:114
Functiontest_load_browser
(viewer_fixtures: _ViewerFixtures)
tests/test_viewer.py:194
Functiontest_load_browser_inline_budget_limits_attempts
The mid-playback respawn path passes a small budget so a persistent failure can't freeze the asset_loop for minutes — the explicit max_attempt
tests/test_viewer.py:364
Functiontest_load_browser_missing_binary_short_circuits
A permanent failure (missing binary) must NOT consume the retry budget — it raises on the first attempt with no backoff.
tests/test_viewer.py:340
Functiontest_load_browser_raises_after_exhausting_retries
When every attempt fails, load_browser still raises — but only after spending the retry budget, so the fall-through to a container restart is
tests/test_viewer.py:316
Functiontest_load_browser_resets_current_browser_url
A fresh webview displays nothing, so the previous process's URL must not short-circuit the next view_* value comparison — with an unchanged UR
tests/test_viewer.py:667
Functiontest_load_browser_resets_set_reload_interval_capability
If the webview process crashed and we latched off, the next ``load_browser()`` should re-enable capability detection — the fresh process might
tests/test_viewer.py:481
Functiontest_load_browser_retries_then_succeeds
A board that crashes the webview on the first launches but comes up on a later one must self-heal in-process — the whole point of the spawn re
tests/test_viewer.py:282
Methodtest_local_asset_missing_file_raises_error
( self, post_mock: MagicMock, tmp_path: Path, monkeypatch: pytest.MonkeyPatch,
src/anthias_server/api/tests/test_screenly_migration.py:349
Methodtest_local_asset_open_oserror_surfaces_as_per_asset_error
( self, post_mock: MagicMock, tmp_path: Path, monkeypatch: pytest.MonkeyPatch,
src/anthias_server/api/tests/test_screenly_migration.py:369
Methodtest_local_asset_uses_multipart_with_pretty_filename
( self, post_mock: MagicMock, tmp_path: Path, monkeypatch: pytest.MonkeyPatch,
src/anthias_server/api/tests/test_screenly_migration.py:321
Functiontest_local_on_other_pi_uses_headphones
( alsa_settings: Any, device_type: str )
tests/test_media_player.py:302
Functiontest_local_on_pi5_uses_detected_hdmi_device
(alsa_settings: Any)
tests/test_media_player.py:286
Functiontest_login_get_renders_auth_card
A bare GET /login/ must produce the new auth-card layout. The string assertions here would catch a broken {% extends %}, missing static refere
tests/test_login_view.py:44
Functiontest_login_get_round_trips_next
?next=/settings/ must round-trip into the form so the operator's original destination survives the POST.
tests/test_login_view.py:62
Functiontest_login_post_honors_safe_next
A successful POST with a same-host `next` redirects there, not to the dashboard.
tests/test_login_view.py:72
Functiontest_login_post_invalid_creds_keeps_next
A failed login re-renders the form, and the next value must survive so the operator's destination isn't lost on a typo.
tests/test_login_view.py:110
Functiontest_login_post_rejects_offhost_next
Open-redirect guard: an attacker-controlled host in `next` must NOT be honoured — the view falls back to the dashboard. Without this filter, /
tests/test_login_view.py:89
Functiontest_marshal_dbus_options_wraps_in_glib_variant
pydbus refuses to coerce a Python scalar to ``GLib.Variant`` when the slot is declared ``a{sv}`` ("Expected GLib.Variant, but got str" at runt
tests/test_media_player.py:218
Functiontest_missing_internal_auth_is_forbidden
()
tests/test_recheck_endpoint.py:130
Methodtest_missing_timezone_file
(self, tmp_path: Path)
tests/test_django_timezone.py:75
Methodtest_missing_token_is_400
( self, api_client: APIClient, validate_url: str )
src/anthias_server/api/tests/test_screenly_migration.py:548
Functiontest_missing_token_still_rejected
The same-host Origin relaxation must not bypass the token check itself — a POST with a matching Origin but no ``csrfmiddlewaretoken`` body / `
tests/test_csrf.py:141
Functiontest_module_level_linux_user_constant
()
tests/test_auth.py:94
Functiontest_mpv_never_passes_video_rotate_on_pi4_64
Pi 4 (eglfs) rotates the whole screen via QT_QPA_EGLFS_ROTATION (set in src/anthias_viewer/__init__.py:_build_webview_env), and the QGraphicsV
tests/test_media_player.py:934
Functiontest_mpv_never_passes_video_rotate_under_cage
x86 / arm64 / pi5 run under cage and inherit the compositor transform via wlr-randr (issue #2856 — driven from src/anthias_viewer/__init__.py)
tests/test_media_player.py:891
Functiontest_multi_upload_skips_rejected_file_and_continues
A file the server refuses (invalid type → HTTP 200 + error toast) must not silently abort the batch: the error surfaces and the remaining vali
tests/test_app.py:704
Methodtest_name_already_has_extension_is_not_doubled
(self)
src/anthias_server/api/tests/test_screenly_migration.py:97
Functiontest_navbar_links_navigate
The top-nav tabs must reach their pages (Integrations is balena-gated and absent in the test container).
tests/test_app.py:1472
Functiontest_needs_image_normalisation
(filename: str, expected: bool)
tests/test_processing.py:1937
Methodtest_network_error_returns_502
( self, validate_mock: MagicMock, api_client: APIClient, validate_url: str,
src/anthias_server/api/tests/test_screenly_migration.py:509
Methodtest_network_error_returns_502
( self, migrate_mock: MagicMock, api_client: APIClient, migrate_url: str,
src/anthias_server/api/tests/test_screenly_migration.py:620
Functiontest_no_bootstrap_class_names_in_templates
Regression guard for the rename pass that took us off Bootstrap. Scans every template for a fixed list of Bootstrap utility / component class
tests/test_template_views.py:2446
Functiontest_no_console_errors_on_load
The deferred home.js + vendor.js bundles must execute without throwing. A console error on a fresh page load means the minifier or an import b
tests/test_app.py:258
Methodtest_no_error_log_on_healthy_tree
( self, tmp_path: Path, caplog: pytest.LogCaptureFixture )
tests/test_whitenoise_resilient.py:173
Methodtest_no_op_when_no_socket_env
( self, monkeypatch: pytest.MonkeyPatch )
tests/test_viewer.py:2011
Functiontest_no_origin_header_still_works
Curl-style clients with no Origin header (legitimate server-to-server callers, scripted operators) must still POST successfully when they carr
tests/test_csrf.py:169
Functiontest_no_skip_when_current_asset_still_active
Unrelated edits (e.g. duration on a different asset) shouldn't interrupt the displayed asset.
tests/test_viewer.py:955
Methodtest_no_uri_asset_raises_before_request
( self, post_mock: MagicMock )
src/anthias_server/api/tests/test_screenly_migration.py:414
← previousnext →1,301–1,400 of 1,832, ranked by callers