From 612bac6f6a196cc3caf0026d7f5d06dfbb6d3e4b Mon Sep 17 00:00:00 2001 From: "Petr \"Stone\" Hracek" Date: Thu, 22 Oct 2026 13:45:02 +0200 Subject: [PATCH] Add Testing Farm integration with TMT metadata and GitHub Actions - Initialize FMF tree and create TMT test plans for daily-tests, eol-checker, and ocp-stream-generator - Add test definitions that run tox with Python version matrix - Add GitHub Actions workflow triggered by [test] PR comment using sclorg/testing-farm-as-github-action@v4 Co-Authored-By: Claude Opus 4.6 (1M context) Signed-off-by: Petr "Stone" Hracek --- .fmf/version | 1 + .github/workflows/testing-farm.yml | 35 + daily-tests/coverage.xml | 896 ++++++++++++++++++ .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 175 bytes .../__pycache__/daily_grades.cpython-314.pyc | Bin 0 -> 8993 bytes ...daily_nightly_tests_report.cpython-314.pyc | Bin 0 -> 27201 bytes .../__pycache__/download_logs.cpython-314.pyc | Bin 0 -> 10428 bytes .../__pycache__/show_logs.cpython-314.pyc | Bin 0 -> 6061 bytes daily-tests/main.fmf | 13 + daily-tests/test.sh | 3 + .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 169 bytes ..._daily_grades.cpython-314-pytest-9.1.1.pyc | Bin 0 -> 13750 bytes .../test_reports.cpython-314-pytest-9.1.1.pyc | Bin 0 -> 41099 bytes .../__pycache__/test_reports.cpython-314.pyc | Bin 0 -> 15698 bytes ...est_show_logs.cpython-314-pytest-9.1.1.pyc | Bin 0 -> 11322 bytes ...og_downloader.cpython-314-pytest-9.1.1.pyc | Bin 0 -> 47646 bytes eol-checker/main.fmf | 9 + eol-checker/test.sh | 3 + ocp-stream-generator/.coverage | Bin 0 -> 53248 bytes ocp-stream-generator/coverage.xml | 177 ++++ ocp-stream-generator/main.fmf | 9 + .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 193 bytes .../distribution_data.cpython-314.pyc | Bin 0 -> 1544 bytes .../stream_generator.cpython-314.pyc | Bin 0 -> 13125 bytes ocp-stream-generator/test.sh | 3 + .../__pycache__/__init__.cpython-314.pyc | Bin 0 -> 178 bytes ...gestream_file.cpython-314-pytest-9.1.1.pyc | Bin 0 -> 10989 bytes ..._json_builder.cpython-314-pytest-9.1.1.pyc | Bin 0 -> 11834 bytes ...t_yaml_loader.cpython-314-pytest-9.1.1.pyc | Bin 0 -> 1631 bytes .../data_json_builder.cpython-314.pyc | Bin 0 -> 2179 bytes .../data_yaml_loader.cpython-314.pyc | Bin 0 -> 612 bytes plans/daily-tests.fmf | 6 + plans/eol-checker.fmf | 6 + plans/ocp-stream-generator.fmf | 6 + 34 files changed, 1167 insertions(+) create mode 100644 .fmf/version create mode 100644 .github/workflows/testing-farm.yml create mode 100644 daily-tests/coverage.xml create mode 100644 daily-tests/daily_tests/__pycache__/__init__.cpython-314.pyc create mode 100644 daily-tests/daily_tests/__pycache__/daily_grades.cpython-314.pyc create mode 100644 daily-tests/daily_tests/__pycache__/daily_nightly_tests_report.cpython-314.pyc create mode 100644 daily-tests/daily_tests/__pycache__/download_logs.cpython-314.pyc create mode 100644 daily-tests/daily_tests/__pycache__/show_logs.cpython-314.pyc create mode 100644 daily-tests/main.fmf create mode 100755 daily-tests/test.sh create mode 100644 daily-tests/tests/__pycache__/__init__.cpython-314.pyc create mode 100644 daily-tests/tests/__pycache__/test_daily_grades.cpython-314-pytest-9.1.1.pyc create mode 100644 daily-tests/tests/__pycache__/test_reports.cpython-314-pytest-9.1.1.pyc create mode 100644 daily-tests/tests/__pycache__/test_reports.cpython-314.pyc create mode 100644 daily-tests/tests/__pycache__/test_show_logs.cpython-314-pytest-9.1.1.pyc create mode 100644 daily-tests/tests/__pycache__/test_tf_log_downloader.cpython-314-pytest-9.1.1.pyc create mode 100644 eol-checker/main.fmf create mode 100755 eol-checker/test.sh create mode 100644 ocp-stream-generator/.coverage create mode 100644 ocp-stream-generator/coverage.xml create mode 100644 ocp-stream-generator/main.fmf create mode 100644 ocp-stream-generator/ocp_stream_generator/__pycache__/__init__.cpython-314.pyc create mode 100644 ocp-stream-generator/ocp_stream_generator/__pycache__/distribution_data.cpython-314.pyc create mode 100644 ocp-stream-generator/ocp_stream_generator/__pycache__/stream_generator.cpython-314.pyc create mode 100755 ocp-stream-generator/test.sh create mode 100644 ocp-stream-generator/tests/__pycache__/__init__.cpython-314.pyc create mode 100644 ocp-stream-generator/tests/__pycache__/test_imagestream_file.cpython-314-pytest-9.1.1.pyc create mode 100644 ocp-stream-generator/tests/__pycache__/test_json_builder.cpython-314-pytest-9.1.1.pyc create mode 100644 ocp-stream-generator/tests/__pycache__/test_yaml_loader.cpython-314-pytest-9.1.1.pyc create mode 100644 ocp-stream-generator/tests/data/__pycache__/data_json_builder.cpython-314.pyc create mode 100644 ocp-stream-generator/tests/data/__pycache__/data_yaml_loader.cpython-314.pyc create mode 100644 plans/daily-tests.fmf create mode 100644 plans/eol-checker.fmf create mode 100644 plans/ocp-stream-generator.fmf diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.github/workflows/testing-farm.yml b/.github/workflows/testing-farm.yml new file mode 100644 index 0000000..5a7241f --- /dev/null +++ b/.github/workflows/testing-farm.yml @@ -0,0 +1,35 @@ +--- +name: Testing Farm +on: + pull_request: + branches: + - master + issue_comment: + types: [created] + +permissions: + contents: read + pull-requests: write + statuses: write + +concurrency: + group: "testing-farm-${{ github.event.issue.number }}" + cancel-in-progress: true + +jobs: + tests: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tox_env: [py311, py312, py313, py314] + steps: + - uses: sclorg/testing-farm-as-github-action@v4 + with: + api_key: ${{ secrets.TF_PUBLIC_API_KEY }} + compose: Fedora-45 + tmt_plan_regex: ".*" + variables: "TOX_ENV=${{ matrix.tox_env }}" + update_pull_request_status: "true" + pull_request_status_name: "Testing Farm - ${{ matrix.tox_env }}" + create_issue_comment: "true" diff --git a/daily-tests/coverage.xml b/daily-tests/coverage.xml new file mode 100644 index 0000000..69fedbf --- /dev/null +++ b/daily-tests/coverage.xml @@ -0,0 +1,896 @@ + + + + + + /Users/phracek/work/scl-utils/ci-scripts/daily-tests/daily_tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/daily-tests/daily_tests/__pycache__/__init__.cpython-314.pyc b/daily-tests/daily_tests/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e473e3a7266e3837d344b6b9b5f5038495b5e5c4 GIT binary patch literal 175 zcmdPqetCXTwtjJPj&5m5W=^qwa;9!^a#3bMNwI!PVrEXIZb@n}j2#bQ$H!;p oWtPOp>lIYq;;_lhPbtkwwJTx;8V<6)7{vI*%*e=C#0+Es072(1O#lD@ literal 0 HcmV?d00001 diff --git a/daily-tests/daily_tests/__pycache__/daily_grades.cpython-314.pyc b/daily-tests/daily_tests/__pycache__/daily_grades.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cb32cd8f799b2df8bbd64156861e8af5c9a667c5 GIT binary patch literal 8993 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 literal 0 HcmV?d00001 diff --git a/daily-tests/daily_tests/__pycache__/daily_nightly_tests_report.cpython-314.pyc b/daily-tests/daily_tests/__pycache__/daily_nightly_tests_report.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..85b503b4052f003e04622a9700e5f243e11e1e16 GIT binary patch literal 27201 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 B)u#Xe literal 0 HcmV?d00001 diff --git a/daily-tests/daily_tests/__pycache__/show_logs.cpython-314.pyc b/daily-tests/daily_tests/__pycache__/show_logs.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3b4a776d9b4d459174e7c8f7b06d5b667640571f GIT binary patch literal 6061 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 literal 0 HcmV?d00001 diff --git a/daily-tests/tests/__pycache__/test_daily_grades.cpython-314-pytest-9.1.1.pyc b/daily-tests/tests/__pycache__/test_daily_grades.cpython-314-pytest-9.1.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c99f645065a230b5978cbbf593fb16a55376c6e GIT binary patch literal 13750 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 literal 0 HcmV?d00001 diff --git a/daily-tests/tests/__pycache__/test_reports.cpython-314-pytest-9.1.1.pyc b/daily-tests/tests/__pycache__/test_reports.cpython-314-pytest-9.1.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..76513e6420bc701829f79a4636fc5c06568f8dd0 GIT binary patch literal 41099 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⋙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 M<9aBO8+qdY4{9Q#fdBvi literal 0 HcmV?d00001 diff --git a/daily-tests/tests/__pycache__/test_reports.cpython-314.pyc b/daily-tests/tests/__pycache__/test_reports.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..544302fe3948d3fbb3c9b74591ec611a7a78b097 GIT binary patch literal 15698 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 DSpEAp literal 0 HcmV?d00001 diff --git a/eol-checker/main.fmf b/eol-checker/main.fmf new file mode 100644 index 0000000..c9e3415 --- /dev/null +++ b/eol-checker/main.fmf @@ -0,0 +1,9 @@ +summary: eol-checker unit tests +test: ./test.sh +tag: + - eol-checker +duration: 10m +require: + - python3-pytest + - python3-pyyaml + - python-tox diff --git a/eol-checker/test.sh b/eol-checker/test.sh new file mode 100755 index 0000000..2798e5b --- /dev/null +++ b/eol-checker/test.sh @@ -0,0 +1,3 @@ +#!/bin/bash +set -euo pipefail +tox -e "${TOX_ENV:-py314}" diff --git a/ocp-stream-generator/.coverage b/ocp-stream-generator/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..2c6e424c6250695a57eccd753f95d7a47a05224f GIT binary patch literal 53248 zcmeI)TW{NB7zc1WPLrig>!LD6rA&QqpsUt23rHL@t^QUHj{P2g?(*dPD_2teS#2y{;8vxUh?_3BrFS!u|?GcD;w zkE8E>vbb<&QJh(L_tc_@j)|kgg0^B&EC|nC6)owBn%$7XcB-~z2DVcd!Lm$3w|!aV zHH(hXs>K24!}z>s*j0)Z$T}s_^6aMRt&0`8J{Java|`5J5FMaIq+NG7gg6>UpB0|0 zNl!YK^rKQ7wX3tkv)^19&K4#n)ax>=lj&J>8|kYJ9q3kNsYVG|u2<#KS3J|PmZd)@ z%*`5FE|qgFh-&M(%~IfshV6vabbLFoT}Q|@X|)4c-L`^rjFxPK*IOG(>jGEkLKHL3 zt4F6Bd7GGV@Hldf3g@^9Yd0ciO_9SgJMCtL$S<~=Ep8l&5oH{>gJKSf8@O?0pSo?f zY0GYX`aF0OySK5RiR!f*ZfNjdh2AE z?Z6FR8`StlnI7`jo;#E+Oi!!VFNGb2d5nr3_?tVqzD~1wctF?T^Mm^hkCOgQ!lS6s z5N<6TG8|h(jYGY;cg&O$4AbL*Cfqn6mGqhRHZClcK~x%UrN6I*J;s+bKxi&Vg4NoN z#Y4sCI#}*y>6vvoAD@k;g=gK7sOyw-nZn}qpsuso1&s3M?r>)^lPye5saJDhH;P*; ze#-WBp`<0ZnMRXSO=BX_&(HE2|m&t0$Ub>r!RiX43@>?W#_|G@R^}Z;qAkN3eH6^%KVtQHl7NL z{H+%1H)+!6yVh4^KGH4n2Xei5*=*2k(lTw2hAhp&(F!0qVAZ6+X2op>VgKcqVfW;< zr(51Af$r1{uyiaG6IW(%x?2PuLzQavyl=+dbk`M7)xz4njEgU zjwUC=r*{HPGpTF*GS%0!ww&yCvX5w%rngAFor}SH4Ebf01J8(2vsWUzBvkwcX?T_| z@KybRLN{y>fB*y_009U<00Izz00bZa0SFvC0ZmP*S-$>H>Ax%b-}HbD0uX=z1Rwwb z2tWV=5P$##AOL}VDUeTTNA%>+LXMBC+SFwHHvq5CmtUKIWteJ}(r+vJZT;@PtRM;v z0SG_<0uX=z1Rwwb2tWV=5P-m@KwdkdCLaT&hPA0&{3!r`|F4bxqUbmDm?4oaZ zb}R5puGK2~0sRm_vsjl7{a8rgdVJ7`4jSEqRhtgk6-vQ%jPNG_TI&~6l-apm$ZTuw z^aBVLmGWBJg}e;IcI?0~C=dSrUmLrn=r_l1>E*rJ#3&a8AOHafKmY;|fB*y_009U< zKv5d$&UtkgE|a&r{?}I0opZa9**4ezsY<%Dl-q@h^<4ks_x~`0AOHafKmY;|fB*y_ z009U<00IYEKvOkkl)wL1^@j@Gut5L<5P$##AOHafKmY;|fB*y_Z~z4~Z8R7D|G)mT zqTkp5q$g|;fB*y_009U<00Izz00bZa0SN3#ftR(kn)@(CW&2{tIdSu+Kkna~IQifG zzaHJW_v^-^hu>eh`_i|#p8%*SEqu~aY5D*l{Qh4V-$^0}3jqi~00Izz z00bZa0SG_<0uX?}eiPvD|8f1l-&zgjg#ZK~009U<00Izz00bZa0SN3&fdBs=*Z(^+ bLud#<00Izz00bZa0SG_<0uX?}eiQf~h^j!Q literal 0 HcmV?d00001 diff --git a/ocp-stream-generator/coverage.xml b/ocp-stream-generator/coverage.xml new file mode 100644 index 0000000..636a22f --- /dev/null +++ b/ocp-stream-generator/coverage.xml @@ -0,0 +1,177 @@ + + + + + + /Users/phracek/work/scl-utils/ci-scripts/ocp-stream-generator/ocp_stream_generator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ocp-stream-generator/main.fmf b/ocp-stream-generator/main.fmf new file mode 100644 index 0000000..fa9adc8 --- /dev/null +++ b/ocp-stream-generator/main.fmf @@ -0,0 +1,9 @@ +summary: ocp-stream-generator unit tests +test: ./test.sh +tag: + - ocp-stream-generator +duration: 10m +require: + - python3-pytest + - python3-pyyaml + - python-tox diff --git a/ocp-stream-generator/ocp_stream_generator/__pycache__/__init__.cpython-314.pyc b/ocp-stream-generator/ocp_stream_generator/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be404c05081a7fb410cc22365b61f091c482a1e8 GIT binary patch literal 193 zcmdPqetCXTwtjJPj&5m5W=^qwa;9!^a#3bMNwI!@a)EAfNl|KIu5Nm2UTRTd zNq!MXFdiZpj}VNH&&L&nhDTb0;*+RQ5#EC{!K^s*hYLp{^tLvzxn+##YfP;hu)f?!9Y8t|((CaW(v8J_CUJ(NAI>(T1v-6(?aGAL;BWejvzG!Q7h1 z_R~795^jfaxy(qD_RHY*+#pA(Lb%GP;neocb>X~5c2z#$kXbfr46Ec=KGE5+vvWyP zP>stfO%5nr)>R`3F9K|GvPv3+VWBf;vNV`1T~Ah=mxGo;L2s0xU7Rvnc3``%S4@q( zWHHDq!Oy>g>3Jkc>ZM)2aHnN07p%zpt~YcI!)Mdhieg2JUGGdcFl)v4yMdTBm+$#J z5q~e>@`XmuhWoSGery3^qy5;0^MLhGu@*sW{u(ZvC#=;ER^p)dC?0g5`g`k6F~lhY qOt{m8)Sbgi6Y5lfd}dyng>!!|9-MWbhI`8%-{apNmlS6aXzMTZ)AHs3 literal 0 HcmV?d00001 diff --git a/ocp-stream-generator/ocp_stream_generator/__pycache__/stream_generator.cpython-314.pyc b/ocp-stream-generator/ocp_stream_generator/__pycache__/stream_generator.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a74ff5bd59e2036e98c8c80fab87f0aaf35cb0b GIT binary patch literal 13125 zcmbVSYj7Lab>0OQz!Gng;7cS$P^2kB5=l{_-jS`hMM2rc%*~l{+%B5;Ls9l63=nd+!Zd& z4|1~l%ga1_w#XLzS_Z8r1zBk0E?b6Ke|i_{@35!znVv2?+PTXD{=@~ZyQ&~wR2&ifeYIPENVm9$MWpRa~OGk zmM0>w%E+r`c~0cHE>{m&wbnH(*Nt3{DYus8dXeih+6Th^22QTKTpzC9`x3{EVzyei z%XRIX{snEAVK^#Z4_OsY^y*b9ej^c;6RBiIu_q>?*WwwaW;`m# zGje1!o{33`G!@3wk*Trvk=)uTJVznQ%bd)IIfyPKTkE+LUMCCqvyE^&`LLyd8yCY? z#D3X+*+CPf4^9@tHo0nqlbtlkkX>Ozbw13W<6q|bs3XfSslHNm6TL;!_||*8V$H}>$fDTCQqn|JRy>hN zY&@FDj3#1oB$A=}o2Heqz6+VSl<7-fm!h%wt9`Ghq*wbgvGJZsIWeB;izRy08Oije zV(A|A7>`c$T#F~;QdCY!lo?SoBgM?}jNbH3#T|)6lgX5fd5%PshT>QEnhSa`s7wIS zucoXEt7yU`fWg*OUaQFD3d%WbrGp0ev#K*_j z1N-!@F3FDqMT|re$pj`usVy0kn#smPRy@rWnl`=dm1>b@V!|&AR0x5HYn{x*N4R0F z!2GjWd$=}2qPs+5WdXGXJze|_bGou0;3NE`Wzrfk^e4?tKy|{rZhUP}txBWrcxrx-+sYZ=1R=C=2}>K-%C)h7=bzHs0c$Il;2{cL z8VcDITVymUM-?HJjwhL16oIr?smesh;*oKfM93mF-~$w4EHNHer504BCa|VHlf)=v zJ1S?cAe!bL`f6`a-JY76TB)v^9le{plbny`tG6swZ&?^!X>EV+${$}@IJVf@f4_aX zbzoL_$GL9hYPPagx2CdU(~Nw3iY3-<$p5H%OR?zF3~AI~bQ~VA{bay(#8-u3wjf7U zG#6=9GCDz8?u&XSVGFk%w~a)?cpL`uS<5EYO@|LU8h z&Tjwo@q#}vJ-9Bw#8%19R_&bK`^X~LHmq5Z`fo}xjc4s+XlexA3fE2|s{|1DmI5L` z(H^$Q4uV5~AE1!n4~$>TthD{-06BeTPoS$B=ot1tKv3tm&n3dfL&_fOiK*x z$*|q91rThVI(q(kJg9Z%+~BqLfUSP>%Xpp@>i3GaPc%@gP^vlkI`r?%nlzIXP`94+{2ZohHsjrpw~ z`FaWs8}7bw=Z$~ycRjLkf!0s#T$MNLJ+~yDFKlR=5#IKx*h$0E1F0sH=61*l(zJx1 zidZP)%g{`d1xYk)DJwJN9=2A-*nN1lx{!v27od!3YcI4ZX^aki+Rc4Jrw&7>gb^X^ zD9i6hzU@+#{!te@OTXgct^rL?(sqo+KyST1XdB^4Ss1Ywb?x*{j%niQqv|husXzxY zV$nP@y?xp-;xMop-`4^%*1=sOm|)@J=8OGhEw%AtK8zKH&5rSnVdn_XW^h0Chc`RT zZ^m40!JLSf44QedV?@+f8#W7-i0ZGKg>CBB)9C3hR5(QAqwQ(xQPixsNXQR?`~=~HFJWRC-ZH)vTeI&T`LV6=5{Z1eec=(2NoO7%nDe1 z?pEEY%KL*ke{eqVk-uxr#szmjvT_Ywt0K2yW4>v3u4(su`N7G*{>oz0i5c(DeXSq6 zYgRUN%%6C0`lr|bdE?@Sm+(ekp}Ca?*jR8i&K+BF1q&ND%^%Ef?9XoOpLMP@1n2AT ze{r$lFngu?y1ajL&cAs<_{iUbm$vP|OWo~7a;HNJ83IAV+Ovo%bMQWnIQRj;Qy1!J zX^Sasr8Lx4kZ510>I|TSla5g2Mg;!gr8HZ)3Ar{+s}ie5T4{MwVnrfNc%11*gf;!E z+{fPPH($V~@cbhu=c_^5MQJxz-;@&?AA9h?zA@yGiX%9L*6OHsQ0fFlq|+gf)IsS^ zik_i}K7V{l`W$rzXojZPx&ApsOhmdj&bu+$CLo zh@a@=(d*(@M`kw{<}OiN7Amg|W?Xf1JFHM7Ug3M7O|%3^rzxT?B;vkcf5ev=`_r~J zHQI7+rV{l49(|cN<-bNvw<4P6R%$?+^YvZ1`mV*A&DrYi1^x#;4}|>QlexVom$wXN zL#ML7(^>I!(PYq$1!7Au8FB4Dk-%K2xri&zh57qX!=^9CK)_OXz`& ztSspBU9mN|gTC9+e=F7_9^o$Q7>{}zGH}Ipcz8H6ay)!)@a&Mn_bTA=lrwbrh2t%xgNrOl!4xs!vw%jH`GNZ&6u|$GyO@av`#){u0JC-9;_4A0PxnHQx&gSh3$9~6R$?VaR_1-;jp3lsHcT6|LZoqx`6b_tk{bM z0-(2-1-%UfUYO8YNhY-TSWp{g}IbZbb*Rto2)xZ+NSAqd2w z2GprwKld~nJV>{j>?0OkmKEt@N;Tsdoty9Fq-#=#m)Itun; z6nqsOW_BY2#i*&z*L3A-y0X=q=U@9l?ZWwd&%s>J!Nt(C+3x2aNFR3QkA!na!r8;; zvggiceHXIg1yvcziu6EV&Xh5XnZxnV_M~1yoU}wS!DWrvMOpb?!ccLPmG32r^UH^= zW@R_;052X&8Y8kiCl3bt1nbn;sL+Lew6x8XwwuxpQ(82ot0)as zaH{N;1Y{CriXNFLi_&JoPon_9N{Xjgaa8fy6qhY(CgvC+70F15R9agd$O!?)YyVA6 z+KASI7uHd}gC0cA?R)doqbf=}wE{+dy($s*QGs72!jG!yp++sJrF1>#^1eCvxB+P< zj(cvC`ZCRBU&X$ZXp*Xa?Ca@ERjp@gP7@UJR%FhsoR)r7*Gc(RTOd_uDk~9Z{S3l< zl!_^0^Fv6=2=l6&t8D;L7TM2ZJ8wI~KepR!PU6gnc-sh`-L^gJM|pgqPMxWv82*f) z>)#s5yo5Txqf=*4V*#gmxaJ`0480Jf=TSLEDys)868IC>X3-&5F6$FWtkz!tL?=K`!Dc=zl;OG2YlSsJG~SN$qOx{Xrm~WAqcYSs`q%3N z*Uf8zG3wtO;Zd`>*qfd*VLI(CSqM8IFi|yM2Ir@cEzz2(A~vDBL|Qr&@~O3$xtD=< zQQ<4WJkx4s7)-0lSfC@cSTTa7TFMX}GxVuth+Sixix{~5hg9{4hzPgoEJ8<9Jd74D`=05G=No-c3_u+2~{7-gR4)zs6UAlpB4}tl2;J17q-AH*)-y4%vG1Gbn ziHr{sGxc?g*S2SsL&R`OH9iy?K{t^#5@wW(@}{fG?=vd~3B>6;&$hO(WmvQ=Y?bXJ zyzCg^4)C(btok^bS3Y^Cj%iUU?(EKin!jQ*YjSZ{yUiFGEh7@02!f~EGLyL7P|?rM zvWhCARB5*wxbq+=>FUx>Lq_qSv>3-~`VQ7a!#_ZcOcNs99xa6o z{+6HsO$iHO%xu!Y4Dees291b}EhUDdG{G;yR@Z=tp`Ek>X`E@*KPT0eMqV$snH6HPo4^3U;e15YnLv z+LRto$SPtn==p!a7I74bE$Re)Pa&DqV?~l#Q`ASDYW^A3T|mUBX1;k_u6f(Sx%=%P zg7;rsZr;OC>S0}wIAVteS&WhDjL}3Y1D%XB{^r2d){$@9nQPmb-8gXn@L$CqbmsS; z%I!b3xchW=*O{LVW?M$+jZFoE*?uH8s!&2;h2!W-SVfkn5)=cl3~vJU-Vyxncc~Hq z728A~I;0+95{^g|eVr^I{JTjRW$MJdzs*zp5N=0^BIF0i-+>2Yn*02x; zXBsxfQA~vGVFyYo*gzlOX9N!F86rVPgRMs{~J?w%)$fV;j_3+kGB(VC` zU^|V(5m7H0G-wSnDJh;9+&bWxp*s{`Jnwo6{?=^pz=QMogD>U|zL;$buiC6lUT{-S?d-^0c=pVyPpoy$I96*of5VLC zP+^`r<2$>Qy!P}Z6v2Ql?WV;0XGs*;~ul*r##{KXz*lI z-WD88#(LS7OsPu5Qpuy_@iS$kWDnB}h2N$)v`a6E)^NqC?&rhU&V#EkB)p1zRe>1C zV-U%p{Y;ykaeC&hq_s8e2WCH^Q zcilS~waH?`)>V(g@0<}<{n#Dee(u(Db64qhsJ-)pw)fj+j?K2@+#3tN+8LKh3!rsI zpv9DF;ol=czyLP^qp+A@M{4GFTG5C_Kj0xasqA9F`ZSjMVxNE!z)#rDV8n`zNXdnB z=~eBpvFI1uk6870!?A}42vwdk z?Mx~b9hcrhZ52vv>{v$nBg&wL5?f=BA*C^Uc=CJ^_$rY?NM{h~++IT$M|5K(h&+OQ;*qRqRb0SW`m&7dvUtq?q%GiuF2KC#Bb!M9D zBbO1b68$TZGiKT5J}__!xbhC*%9}0;sMoS^u|p@1X$!fWkXuP*4Einlsr<(FVS_3b z2cwUojk{zJ!b&IvCo;Q*=06x`%A}O6K_x~1N^NCC;8*^d85{1A z^Zrda|EBr9i~enRu5G@1@STJ3P6;&LJ#**GeBEMT+qaJ6{3y`=u(mm0yLqX0bEVSm zhobwo`<8q5LcXOh*V4BnZeJlcvTsezJ+r_s`L<-mEli8dqZ??8#@67XsPi`NvwJY! zZe^al*b?LIpE=$uB}YPO?uEwUs*H;~?Y+=%0~f<4G`xaC?MudXXF!|4r>)koW^1Lx z`>>$Dhunc+vEN`0K-IcDE}qlv46ZKrO8(cIwW`+y`eJxkV_YK~Hd;2+2ac2ny7)~y zOy6W5aS)Ty$ARyq6BZUm97X@@3htxgh&XI)=JYniH!2+>6`hc<>J%#*7uaxvtD=9p zYfl?@dZy^4^Vv?Kr-1{SL#R`F8J$Z2Ms8}yWCquq`!z4RqEB(~<rz6FOW#8}RHgXHD?1{mB0xfNXH{I}?aKUI;q&9Ts_st6r*BN> z;Q&pziBerFa;5K5&(ytAMF^`Fk)o?!K8RH|FHFGIPx>1a{1Sf|JFEgwS>H5$cE#a* zYv=8~xAuPRcjx#eN7G7u@CQ48wD;cL`-lJhz*7C58P|%-`&Q=mmu`LO+Xv?kFS%M* zHnzWa{oU*HuYKp$nX|w8h3Lt8k1UBtS156CNqqKWpMS;M^zDi1=O0$L7Yd*Rl z=DYXhy7y%_@6XmAm=W=cS=Zdjx&2u$cE_7nJk_(^b4T-@;F2deKM0<8`|Pc=bI<2n z`g1M)_q!Kc4m=oLZaK2#J_=V}Z+p%YT=Q`L#&tIy&?@T*ewuM(KK{Yieca~wN1N+- zJ@eJ2$%;fm4HDt6^rsa45E1;vAg}SnRf(Wg5$H)eMy14t$;p=_11DU2Itmgc!%ysL zCN&PvT&1g$Q+zM@y6U=%U7WfS!umPYD}Y#_s#|1c?1-No?XjJ+s%j)ob;SO$@^b_O}0*hB+;t;KG4Dr2>;DXY- z{u1BA?|H-_`s5Yf$M2c7e!}7Blg?_spVIhQ@7~65eZ(Ppe1)&$kMXP9Il(zacWVq zenCc2VsdJ>etCXTwtjJPj&5m5W=^qwa;9!^a#3bMNwI!@a)EAfNl|KIu5Nm2UTRTd zNq&)jNop}rDn33lFS8^*Uaz3?7Kcr4eoARhs$CH)(0q^!ib0G|%#4hTMa)1J0NWuh AS^xk5 literal 0 HcmV?d00001 diff --git a/ocp-stream-generator/tests/__pycache__/test_imagestream_file.cpython-314-pytest-9.1.1.pyc b/ocp-stream-generator/tests/__pycache__/test_imagestream_file.cpython-314-pytest-9.1.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e04fb6f50014ea9467d208352df6a283e26f43cd GIT binary patch literal 10989 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 literal 0 HcmV?d00001 diff --git a/ocp-stream-generator/tests/__pycache__/test_json_builder.cpython-314-pytest-9.1.1.pyc b/ocp-stream-generator/tests/__pycache__/test_json_builder.cpython-314-pytest-9.1.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77508b125b18164efc19a52085f5a094959118a5 GIT binary patch literal 11834 zcmd^FO>7&-72YM6ze`f2{{0uzvE78WB}$fTDRE>cj-^Vj9jhaUN>auIEzzzAq|O<}^iSPmo}L}f`@lrBj`9+PyL-Cd*Z z1=n6_RM9jEYA&mP!BR*0bbQr#(RJd=^@5@fe-6p#{0%1 zqfL4f&=W;fp5`U7#{+@Rc~c{82C25ZLjoZV4u`)j!JJQ z5z<7WBu1J^3uy(ujkG5{dI#y~kn~Q{33Lb90dyzX33M0P1#~yr4RjCL1N12(@0Su! zeT_A~l8_DctX7ymy)c`f&QVCZFJ@=p7C4vHbDC}@US81j!W>UDjm>3eAdBX*b0f3) z94JS!)6*F}JCmU~Z6U9Nq|K7#Sv55>rdXABM&}e%sOK`-`T2sL)n^OycHZ9Vyvll8 zO_i&;ER4f0+B%b)&rz)SEf}ULH6|u2XN%aq%_tU+J0xYVUlUBP8~zXe0CZ7G!%N7ow9DcMyposXeubxt zQrhGsY20h+*!QALT*TciCFP`iZQnj=GTv|2bgeJ#xAX=_CF$CkXUycVJo6h#+AXE6 zk3kv_S(^5JpG2Z5rB5cYl-sVU&t>(DD8!SFSo-5pi?i?c3;G-gXZBUJ*=%cC+&;%> z`^~wrdOf|XqI|1W%D&ese_kdY;&qI*X1SDXwMTs0>biukp9C73gFO{vs5u8I$*NzB zy`!RB?J0=&r1XokCZy~prf=75Q*qe%LZ95dXYg4_U-=co^w-)zciT8`@RgU=SP z_x2_yq27r?c#W@B@0uZiM*6al=QShcXF z>K0i(SK8GJsSi)VeN`O*_REti>e#ws{??SSk~;9^Ng)u-M+1Vrt&CZzJ6IRbz@oc) zg%W2V|Fb?JgMwBHGN2)mBeWe&gSI18p$a{J07EW!z3Q}mL|B+QY@eGbkIDAMnC)xc z!uFv>`QNa8-a71=ZTtKVw5)AoY}#a<(r>)NRLM+rAJ9H#Cm#&-R6@Y#+G& zkKFb}%WPj1Y+nmS%Sm?t+4S^w{$b>fAn8KVjUrRoJ774 zNk5WfNRA^JKr#r#X$dGgrbdeZZFBtq9jB)t2Mv*iKnBUAy3V1lI<{n{@Z1uK`yb zNbV#4$Asi<49VNKK=MXWtiG=w-(+@KK4pWRZ&i8leCt6q8_7f4BA|`r;6XQpfKLv| z0pGSAhmGVA0BL9(^*zg~RY-%+vZ_2h%UBhXL*V9-BYA5XlD7hqcQ6n)ywkJb)fPCc zqYb|i)e3XDI1j(XS|H$jZBPoe za1Z|f#|ngDf)Ldo6d!5@>W^Sui@_RPL@us9ZO58e)T+<=+8}E6UPTn7cGN1IazoTA zl5*KKIiglzogM>5RN=MN>;EEZ1y*!h?6dK{(G|&)!|-}mAhs=PG@|zXVR#_vDT_HN zXrWU|MI_48KqSgzc?;GZB2giZ;dDO<0e&~xo_K}hjiIGJ7CK?xH-}#g@NPyNktT=$ zF*lt1-4JG)#BdQriFlX^n1_d%szUB&z^Sh+&IDmAGtOi~yAi7@OR;;jUZD5#!6DE) zqdxu2$LA6r`Wa-tzJ@_U9`E5^emnE>t2=QX^l&YqeFdaukY-&yu%aF)DZ?f8!1BbZ zngDjKYj{N+URTWD8fGRyC?tYGcit4=R)($A9afvj;S30uCxi^NtrXKvh#aBqY!K9) zNvARtuXg9_1oHaBF^?R`BMiu!wg7U3$40^r^#R4>0CLSl-Rkf$2Osw@!tf&Bl=5I}b%pMR5iC_>;P4R7I!b;u20tZA6 zXF$08hLC}_m15dGB1dRD8w7P{(y0u^9|EqwV_q`u>6&p7wi`*{Q%ZV@67JH$-kU@q z26;*DmXoe-@LWk#(p{A8z2V8IwWnKj+55!f0;*ts&Ffkp_|oDNymlsyMvz_1mwwgy zScESvK8JAuP*w>Hf011&5BSo%Q;J=a!jQ7uKS2ELC zJ?n7W@tdkd_=J38;yd~3e4}?uKRrYdBltdWxa_zLW!>bOgfdJc(wUKFlRxU`*0X&QF>D52agQF#;7nl;~2@SxNH~{n*(ke zvTGSNvsPiCY9CgzeP-)}7xgQX{pIFw=4%#667W{rAdpUG{B}(CJ4_xL65+v**My!j zlgCYi-BRr%D8lpzDCMTXE{FSV6&HYEVBbVJG+RkmS*XN|=M!td zJIofp()P%4SFz&S0^U2|Fi-~o`_6`dof4>>P9V96gl%=cid+f_0{4y3Ptx;gJ*}nF z^KTwvuDTHhP@gRpbJOe$2;2KKnuLrWdA#8ay}+3qwmHfjc7XF{gmXB%W1Y@{13j=T zz>mjp!8seZws6^m<+9U?hQf@FXL@0-s8L+S*BwIP7)@WtG7O^A$i0aK!P*%_F^}2s zh{`c-E66VE8O=c@xa81Wj}Nk2+dmokc;x1(TcT1u0)z->P!>!y%Cpj6-(2wnj-g zeDi|P2PH>Jh=G9y7%nIF8h-1v6x+Qvc4YYZs%{>agYA`WntPYd!ilng5E(vG#vg7L zpV1|JMhD?YQU=~LIA@y?N0PcL1r!f~vXfqXQ=M(Iuvcq0np&+JJq||7jxezUV0_D+ zZNebt^7SM01=!1m-zX33;qfN6PtJBuC}B{=VspTay#Ix{!t_EucaqLQ zKD;54_6s2Q-LfqIOOig2ey;vq3fz;1?n%e)NhjFvrF+uAJ?SL-0YA!ehyEFC`*qi% z@4i>^s2`4OD6ysENRDnO=p!hxQp-Vb3WBah?>EgZ`Kk literal 0 HcmV?d00001 diff --git a/ocp-stream-generator/tests/__pycache__/test_yaml_loader.cpython-314-pytest-9.1.1.pyc b/ocp-stream-generator/tests/__pycache__/test_yaml_loader.cpython-314-pytest-9.1.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7f2841a8190cbc3a7fefcec00c7f1b1db3ad6336 GIT binary patch literal 1631 zcmb7ETWb?R6rS1Lq`9=gs@RK4TSauM&Gr&&rLE|Ll7dQEup$JPF|soHuO^auDRR1kdf%-)*DA~+;F=RW6r=ggch^%W4TFTZylX&9lpWRj)C z#O@U!Hqm`#;w8j!xGPn)rHr7e#xo;Qqby~sJ-jER)umiD&+{Y5)CLeQnD{i(Gv8&f z+d3A7d&F~Z`lMk~;10P!S#1zm)MhQ0@5>+$J}Ufo1IT3))gZ%YnWz%e0a`)JNv4S! z_9y){En(-Xz@IuBv)A!zFG43!Et}|bQ$*5lU-+)y6q7fgIbchl586TU4DoD?RN|EGS!aS4z|b1Ii_Z2{;Q6$ zu6z!xV-K<9oV1?fUH%8=_qRXPl`+%{Y0nS}R5NS#tf&UwC)H|45`;QXIGV`zc0gN8 zvPP%{8VeWq`i;FtmxFE&TIx9SjiP6Q-a#Ckyc}(H?=wc+P=u9tCIoU#! znlQR3Tn*YXDT`3iZ`Fw_?@d7Kz84T`i(XJ$4_c1PohFkRf&~+U7F+XMZX-0cR$c!A zajhotY>~GZd1%WBqI50H+wq&%DfOv1VmHr9Rm*kE;cqQxDT8FgoZ)u|Hz@P0j*V4T{- zn^?7*HYMDrM%0rKgz(*n+E5PKq7(|#7ljVNk@9M@H}Kg+U;75O1}8uCO>N%zT1h)oo%JMS;di6C;jWTpYJcU|guPM4KWB z9_2uqGJ5pr(PO%03{aqRN1{LhmQ#TK0|c^l>K!Gy5^Oa=fpR$V?%w;p_kHhypJmcX zjy`|<_50!7X^#7oZ3a)V|MC78p5tC|kb^uFU<8UV3S)2r#$f^`VG2&t^EAxBtP+C~ z%)u!dHLVCxhIv>}ctx!8bmg4^!c2%z>?6!xfpCrST!Fy%YnTfW=C7z>VW@`dS0D)E zYj+~_ZcJ5aPrZ%|bNtEkE`l};4SIXr@8Bv!;a&($o%|s%9#6jaWMB zRKoD=E+!7Bfm`s=gKeJ%5)lbziQEkm)WL?Q& zfI}yKLQ_p+Q%8h!!_Nwf=qA{@$`*g(7~6#A`h3k74{WpLi$|JK_fz*x^$6QrE!4o> zn>KD}#IZY78`qmCRAM)&RE1$wY8yHV!Ll|!z&18i{Jp7bYKNNBv9KTAHdUniv0ha7 zLiTo;wbFgVl84JqCV%(_?riNm+yM7FfM6Y~j%GA~)6@u{ey@U#*|q_)EXor43|?xw z4p7@MTXav^^bTlSbxHsn6SN6^H8JQF0Q!;vI!2m~Ug#K@2KbJ)=_zZ|D$op7Z`T=N z3muyFMSKsCRFi%t^yR5zW7OJ3jjlw@76xjYP<{~hR@!BnYHJtG^@ZA6_mdA8xi)Yz zHALVik)`eR+SJW!tRvNtK{>AZ@fLOvm5Zq5tgRxW-&u+K8C0+DQ_J>kOxn8R=Lh?q z7nhEE8V1Kjl`3@b{yzgfxLLe>Gm0qp1DY7o86Ko%hlX>%MH;@`zy`J%$00F|e%Mdk zd-kXFpDWJ@)vZ`f8>#q6d1=~53Q_e++tGBQs9L2r`$RESt3n5qwxiMqH0^LWiNah7 zmmb55wx-j9s#eF3f7LSUZ5@AYmnj?lC3ECwf#ZS*&-3rZq!-V;lL}`Op0wb}id(zq z$?I z@)yBEHk}C~xm+@cOs8W(BtIp*$^^H$XsXW@zr+=AksBKnBo9XTrjwMfK>5xJZmIU> z&fB|ganqAZW0__Jm&*@Pxy4ThT$^KcIald=@DaK$*nnI5+!JrTRy;B1PA_|6_H@n@ zlP8ZoF@3^po2PXZ1DT5sM+SnB_>rfoqtZxtK2@gSi@`i~?Bt0jO77H(CuU9yXNB_x zx3>N3fqVOzEA26cy;FFy9VDVfnjr_05LNjg!tqj&`Ec_8)cGaWugfhyH{InsV+U$X bgJ&k`D3!0XQ37<763a#5H%_)obcp{3z!9q8 literal 0 HcmV?d00001 diff --git a/ocp-stream-generator/tests/data/__pycache__/data_yaml_loader.cpython-314.pyc b/ocp-stream-generator/tests/data/__pycache__/data_yaml_loader.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a220e02749f7122f9c25643383133245c7700dd9 GIT binary patch literal 612 zcmZWlPiqrF6rcT*WRq;tU7NJkQ$$2k*(~&AL5ffiEYj*!Z{jj+rs+1jJIl;ONlqR; z=40qLD1M3{29;u>~v9XD_jySRnhcmwht_6G=ePK?k5?+*6gn*+cDGqk`~CBmBz zP`|6}oMcovk_s6WoJu*3ba>{zfpG5?iN|C_Ra20xNNL1r!4y(XOe7sKK2AmpsF7tnNH)rJYQGBMjYgrbwv-sx&k?}>6rQA8go7eM=8djGg@U7PT>YfCHm zEb1G|OBoqPQ<9}{j+mtKE4qOUQt!gI0w#sUIVUk4haVXqhaygciA+)v#!0ZgP=qWl zg7q!Ih~|_N$#|$27U7UcvQldX%|-d3m@4OK#)gxW9`G$7)4PZm)Y38x