32 lines
1.6 KiB
Python
Executable File
32 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""Rust-independent structural checks; the Rust tests require Cargo."""
|
|
from pathlib import Path
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
source = (ROOT / 'src/proxy/forward/web_source.rs').read_text()
|
|
helper = (ROOT / 'src/proxy/web_cache_revalidation.rs').read_text()
|
|
tests = (ROOT / 'src/proxy/web_cache_revalidation/tests.rs').read_text()
|
|
assert 'mod web_cache_revalidation;' in (ROOT / 'src/proxy/mod.rs').read_text()
|
|
assert 'state.cache.revalidation_tiered(ticket).await' in source
|
|
assert '!cached.reusable_for_request(&request_headers)' in source
|
|
assert 'web_origin_request_headers(' in source
|
|
assert 'revalidation_sent && response.status() == StatusCode::NOT_MODIFIED' in source
|
|
assert 'finish_web_revalidation(' in source
|
|
assert 'state.cache.discard(ticket)' in source
|
|
assert 'cache.publish_revalidated(' in helper
|
|
assert 'cache.ticket_current(ticket)' in helper
|
|
assert 'cache.discard(ticket)' in helper
|
|
assert 'origin_safe' in helper
|
|
assert 'cached.apply_validators(&mut headers)' in helper
|
|
assert 'headers.remove("if-none-match")' in helper
|
|
assert 'headers.remove("if-modified-since")' in helper
|
|
for name in (
|
|
'browser_refresh_304_preserves_web_server_hit_counter',
|
|
'browser_conditional_refresh_returns_304_without_resetting_hits',
|
|
'mismatched_browser_validator_cannot_validate_different_cached_object',
|
|
'range_and_head_requests_use_validated_cached_body',
|
|
'changed_local_file_is_not_falsely_revalidated',
|
|
'304_new_private_policy_discards_cached_representation',
|
|
):
|
|
assert f'async fn {name}()' in tests
|
|
print('PASS: RustProxy 0.32.2 Web Server revalidation wiring and Rust regression contracts (static only)')
|