1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- # -*- coding: UTF-8 -*-
- # Copyright (c) 2020 The ungoogled-chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- """Test validate_patches.py"""
- import logging
- import tempfile
- import sys
- from pathlib import Path
- sys.path.insert(0, str(Path(__file__).resolve().parent.parent.parent / 'utils'))
- from _common import get_logger, set_logging_level
- sys.path.pop(0)
- sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
- import validate_patches
- sys.path.pop(0)
- def test_test_patches():
- """Test _dry_check_patched_file"""
- #pylint: disable=protected-access
- set_logging_level(logging.DEBUG)
- orig_file_content = """bye world"""
- series_iter = ['test.patch']
- def _run_test_patches(patch_content):
- with tempfile.TemporaryDirectory() as tmpdirname:
- Path(tmpdirname, 'foobar.txt').write_text(orig_file_content)
- Path(tmpdirname, 'test.patch').write_text(patch_content)
- _, patch_cache = validate_patches._load_all_patches(series_iter, Path(tmpdirname))
- required_files = validate_patches._get_required_files(patch_cache)
- files_under_test = validate_patches._retrieve_local_files(required_files,
- Path(tmpdirname))
- return validate_patches._test_patches(series_iter, patch_cache, files_under_test)
- get_logger().info('Check valid modification')
- patch_content = """--- a/foobar.txt
- +++ b/foobar.txt
- @@ -1 +1 @@
- -bye world
- +hello world
- """
- assert not _run_test_patches(patch_content)
- get_logger().info('Check invalid modification')
- patch_content = """--- a/foobar.txt
- +++ b/foobar.txt
- @@ -1 +1 @@
- -hello world
- +olleh world
- """
- assert _run_test_patches(patch_content)
- get_logger().info('Check correct removal')
- patch_content = """--- a/foobar.txt
- +++ /dev/null
- @@ -1 +0,0 @@
- -bye world
- """
- assert not _run_test_patches(patch_content)
- get_logger().info('Check incorrect removal')
- patch_content = """--- a/foobar.txt
- +++ /dev/null
- @@ -1 +0,0 @@
- -this line does not exist in foobar
- """
- assert _run_test_patches(patch_content)
- if __name__ == '__main__':
- test_test_patches()
|