1
0
mirror of git://f0xx.org/android_cast synced 2026-07-29 04:57:40 +03:00

contrib header changes

This commit is contained in:
Anton Afanasyeu
2026-05-20 15:17:13 +02:00
parent d420c3e94a
commit 5d8e82d2e6
249 changed files with 3597 additions and 22 deletions

83
scripts/test_header_lib.py Executable file
View File

@@ -0,0 +1,83 @@
#!/usr/bin/env python3
"""Unit tests for header_lib (run: python3 scripts/test_header_lib.py)."""
from __future__ import annotations
import tempfile
import unittest
from pathlib import Path
from header_lib import (
apply_header_to_content,
format_identity,
has_valid_header,
is_excluded_path,
parse_identity,
resolve_header_contributor,
strip_existing_header,
)
from pathlib import Path
import header_lib
class HeaderLibTest(unittest.TestCase):
def test_strip_and_apply_java(self) -> None:
src = """package com.example;
public class Foo {
}
"""
with tempfile.TemporaryDirectory() as tmp:
path = Path(tmp) / "Foo.java"
path.write_text(src, encoding="utf-8")
out = apply_header_to_content(path, src)
self.assertTrue(has_valid_header(out))
self.assertIn("package com.example;", out)
self.assertIn(" * class Foo", out)
self.assertIn("Digest: SHA256", out)
self.assertIn("Cursor Agent", out)
body, _ = strip_existing_header(out, ".java")
self.assertIn("public class Foo", body)
self.assertNotIn("package com.example", body.split("public class")[0])
def test_strip_php_opener(self) -> None:
src = "<?php\ndeclare(strict_types=1);\n"
with tempfile.TemporaryDirectory() as tmp:
path = Path(tmp) / "bootstrap.php"
path.write_text(src, encoding="utf-8")
out = apply_header_to_content(path, src)
self.assertTrue(out.startswith("<?php\n"))
self.assertIn("/* package bootstrap.php */", out)
def test_format_identity(self) -> None:
self.assertEqual("Ada <a@b.c>", format_identity("Ada", "a@b.c"))
self.assertEqual("Ada", format_identity("Ada", ""))
name, mail = parse_identity("Ada <a@b.c>")
self.assertEqual(("Ada", "a@b.c"), (name, mail))
def test_excluded_third_party(self) -> None:
p = header_lib.REPO_ROOT / "third-party/libvpx/foo.c"
self.assertTrue(is_excluded_path(p))
def test_resolve_header_contributor_env(self) -> None:
import os
old = os.environ.get("HEADER_CONTRIBUTOR")
old_mail = os.environ.get("HEADER_CONTRIBUTOR_EMAIL")
try:
os.environ["HEADER_CONTRIBUTOR"] = "Test User"
os.environ.pop("HEADER_CONTRIBUTOR_EMAIL", None)
ident = resolve_header_contributor()
self.assertTrue(ident.startswith("Test User"))
finally:
if old is None:
os.environ.pop("HEADER_CONTRIBUTOR", None)
else:
os.environ["HEADER_CONTRIBUTOR"] = old
if old_mail is None:
os.environ.pop("HEADER_CONTRIBUTOR_EMAIL", None)
else:
os.environ["HEADER_CONTRIBUTOR_EMAIL"] = old_mail
if __name__ == "__main__":
unittest.main()