def test_extract_bundle_with_package(mock_extract_bundle_from_device): package = "com.example.app" extract_bundle([package]) mock_extract_bundle_from_device.assert_called_with( package, "assets/index.android.bundle", "index.android.bundle", )
def test_extract_bundle_with_existing_apk(mock_extract_bundle_from_apk): apk_path = "app.apk" extract_bundle([apk_path]) mock_extract_bundle_from_apk.assert_called_with( apk_path, "assets/index.android.bundle", "index.android.bundle", )
def test_extract_bundle_prints_usage_when_run_without_arguments(mock_exit, capsys): extract_bundle([]) captured = capsys.readouterr() assert captured.err.startswith("usage:") mock_exit.assert_called_with(0)
def test_extract_bundle_exits_with_runtime_error(mock_parse_args, mock_exit): mock_parse_args.side_effect = RuntimeError extract_bundle([]) mock_exit.assert_called_with(1)
def test_extract_bundle_with_keyboard_interrupt(mock_parse_args, mock_exit): mock_parse_args.side_effect = KeyboardInterrupt extract_bundle([]) mock_exit.assert_called_with(1)
def test_extract_bundle_with_invalid_package(mock_exit): extract_bundle(["test"]) mock_exit.assert_called_with(1)
#!/usr/bin/env python3 import sys from extractor.extractor import extract_bundle if __name__ == "__main__": extract_bundle(sys.argv[1:])