diff --git a/.gitignore b/.gitignore index b3b495e..3f46fba 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ __pycache__/ .idea/ app/ +.test_folder/ */coverage/ *.log .coverage + diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..3ccb40e --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,13 @@ +pytest: + image: python:3.10-alpine + only: + - main + script: + - sh tests/start_tests_gitlab.sh + artifacts: + name: "$CI_JOB_NAME" + reports: + junit: report.xml + coverage_report: + coverage_format: cobertura + path: coverage.xml diff --git a/tests/helpers/folder_helper.py b/tests/helpers/folder_helper.py index 7cd8521..609b1a7 100644 --- a/tests/helpers/folder_helper.py +++ b/tests/helpers/folder_helper.py @@ -2,6 +2,8 @@ import os import shutil from pathlib import Path +from src.scan_folder import recursive_scan_folder + TEST_FOLDER = ".test_folder" TEST_IMAGES = "tests/test_files" TEST_TEMP_FOLDER = os.path.join(TEST_FOLDER, 'Temp') @@ -28,3 +30,15 @@ def copy_test_images(): os.makedirs(TEST_IMAGE_FOLDER) shutil.copy(src=os.path.join(TEST_IMAGES, 'test_image_001.JPG'), dst=TEST_TEMP_FOLDER) shutil.copy(src=os.path.join(TEST_IMAGES, 'test_image_002.JPG'), dst=TEST_TEMP_FOLDER) + + +def copy_images(brand:str, model:str): + delete_folder() + create_folders() + files = recursive_scan_folder(path=TEST_IMAGES) + for file in files: + file_name = file.split("/")[2:][0] + file_name = file_name.split("_") + if file_name[0] == brand and file_name[1] == model: + shutil.copy(src=file, dst=TEST_FOLDER) + diff --git a/tests/start_tests.sh b/tests/start_tests.sh index 7c64f2f..029d838 100755 --- a/tests/start_tests.sh +++ b/tests/start_tests.sh @@ -1 +1,8 @@ -python3.10 -m pytest --no-header -rfp --cov --cov-report html:tests/coverage --cov-report xml:tests/coverage/coverage.xml tests/ \ No newline at end of file +python3.10 -m pytest \ + --no-header \ + -rfp \ + --cov \ + --cov-report html:tests/coverage \ + --cov-report xml:tests/coverage/coverage.xml \ + --junitxml=tests/coverage/report.xml \ + tests/ diff --git a/tests/start_tests_gitlab.sh b/tests/start_tests_gitlab.sh new file mode 100755 index 0000000..6849de3 --- /dev/null +++ b/tests/start_tests_gitlab.sh @@ -0,0 +1,7 @@ +apk add --update libmagic +pip3.10 install -r requirements.txt + +sh tests/start_tests.sh + +cp tests/coverage/coverage.xml ./coverage.xml +cp tests/coverage/report.xml ./report.xml diff --git a/tests/test_files/samsung_a54_001.jpg b/tests/test_files/samsung_a54_001.jpg new file mode 100644 index 0000000..6e58122 Binary files /dev/null and b/tests/test_files/samsung_a54_001.jpg differ diff --git a/tests/test_files/samsung_a54_002.jpg b/tests/test_files/samsung_a54_002.jpg new file mode 100644 index 0000000..995b0ea Binary files /dev/null and b/tests/test_files/samsung_a54_002.jpg differ diff --git a/tests/test_files/samsung_a54_003.jpg b/tests/test_files/samsung_a54_003.jpg new file mode 100644 index 0000000..59dd271 Binary files /dev/null and b/tests/test_files/samsung_a54_003.jpg differ diff --git a/tests/test_files/samsung_a54_004.jpg b/tests/test_files/samsung_a54_004.jpg new file mode 100644 index 0000000..1e3e7be Binary files /dev/null and b/tests/test_files/samsung_a54_004.jpg differ diff --git a/tests/test_files/samsung_a54_005.jpg b/tests/test_files/samsung_a54_005.jpg new file mode 100644 index 0000000..795fb30 Binary files /dev/null and b/tests/test_files/samsung_a54_005.jpg differ diff --git a/tests/test_files/samsung_a54_006.jpg b/tests/test_files/samsung_a54_006.jpg new file mode 100644 index 0000000..3cb68fe Binary files /dev/null and b/tests/test_files/samsung_a54_006.jpg differ diff --git a/tests/test_files/samsung_a54_007.jpg b/tests/test_files/samsung_a54_007.jpg new file mode 100644 index 0000000..513522d Binary files /dev/null and b/tests/test_files/samsung_a54_007.jpg differ diff --git a/tests/test_with_real_data.py b/tests/test_with_real_data.py new file mode 100644 index 0000000..e05068c --- /dev/null +++ b/tests/test_with_real_data.py @@ -0,0 +1,49 @@ +import unittest + +from helpers.folder_helper import TEST_FOLDER +from helpers.folder_helper import copy_images + +from src.meta_data_handler import get_meta_data +from src.scan_folder import recursive_scan_folder + + +class TestSamsung(unittest.TestCase): + def test_a54(self): + copy_images(brand="samsung", model="a54") + files = recursive_scan_folder(path=TEST_FOLDER) + meta_data = get_meta_data(images=files) + for image in meta_data: + assert image.make == "samsung" + + image = next((image for image in meta_data if image.name == "samsung_a54_001.jpg"), None) + assert image.day == 2 + assert image.month == 12 + assert image.year == 2023 + + image = next((image for image in meta_data if image.name == "samsung_a54_003.jpg"), None) + assert image.day == 8 + assert image.month == 12 + assert image.year == 2023 + + @unittest.skip("") + def test_a52s(self): + copy_images(brand="samsung", model="a52s") + files = recursive_scan_folder(path=TEST_FOLDER) + meta_data = get_meta_data(images=files) + for image in meta_data: + assert image.make == "samsung" + + @unittest.skip("") + def test_a14(self): + copy_images(brand="samsung", model="a14") + files = recursive_scan_folder(path=TEST_FOLDER) + meta_data = get_meta_data(images=files) + for image in meta_data: + assert image.make == "samsung" + + +@unittest.skip("") +class TestApple(unittest.TestCase): + def test_iphone(self): + pass +