Skip to content

Conversation

@sbrunato
Copy link
Collaborator

@sbrunato sbrunato commented Nov 25, 2025

Resolves #1312

@sbrunato sbrunato marked this pull request as draft November 25, 2025 08:40
@github-actions
Copy link
Contributor

github-actions bot commented Nov 25, 2025

Test Results

    4 files  ±0      4 suites  ±0   3m 15s ⏱️ -7s
  682 tests +2    681 ✅ +2  1 💤 ±0  0 ❌ ±0 
2 770 runs  +8  2 764 ✅ +8  6 💤 ±0  0 ❌ ±0 

Results for commit d5ee776. ± Comparison against base commit c3429d8.

This pull request removes 1 and adds 3 tests. Note that renamed tests count towards both.
tests.integration.test_core_search_results.TestCoreSearchResults ‑ test_core_serialize_search_results
tests.integration.test_core_search_results.TestCoreSearchResults ‑ test_core_serialize_search_results_unknown_collection
tests.integration.test_core_search_results.TestCoreSearchResults ‑ test_core_serialize_search_results_with_filename
tests.integration.test_core_search_results.TestCoreSearchResults ‑ test_core_serialize_search_results_without_filename

♻️ This comment has been updated with latest results.

@eodag-bot
Copy link
Collaborator

eodag-bot commented Nov 25, 2025

badge

Code Coverage (Ubuntu)

Details
Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         247      10  95.95%   104-115, 629
config.py                                      302      24  92.05%   69-71, 74, 77, 80, 84, 88, 92-94, 582-584, 689-691, 710, 718, 748-753, 755
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/collection.py                              125       7  94.40%   173, 209, 212, 302, 305, 323, 326
api/core.py                                    746      50  93.30%   262, 548, 596, 639, 679, 699, 740-745, 770, 854-873, 887, 893, 1046, 1051, 1146, 1283, 1326, 1339, 1406, 1420-1421, 1497-1502, 1514-1517, 1851, 2101, 2164-2165, 2194-2195
api/provider.py                                380      35  90.79%   186, 190-191, 316-337, 405, 520, 524-525, 530-533, 544, 620-630, 820-821, 869, 876, 907-910, 946-947, 955-956
api/search_result.py                           181      19  89.50%   104, 113, 120, 134, 178, 195, 295, 350-353, 423, 428-429, 463, 477, 500-501, 507
api/product/__init__.py                         18       2  88.89%   60, 62
api/product/_assets.py                          52       5  90.38%   97, 183, 191, 194-198
api/product/_product.py                        223      18  91.93%   187, 263-264, 282-283, 392, 421, 428, 535, 555, 578-581, 590-593, 639
api/product/metadata_mapping.py                788      53  93.27%   125-127, 220-225, 246, 304-305, 393, 414, 466-467, 504, 525-528, 551, 563-564, 605, 628, 658-663, 728-733, 745, 753, 985, 1160, 1169-1173, 1190-1195, 1328, 1351, 1360, 1382, 1387, 1439, 1511, 1532, 1558, 1572, 1597, 1643, 1712, 1787
api/product/drivers/__init__.py                 11       0  100.00%
api/product/drivers/base.py                     23       0  100.00%
api/product/drivers/generic.py                   7       0  100.00%
api/product/drivers/sentinel1.py                15       0  100.00%
api/product/drivers/sentinel2.py                15       0  100.00%
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 22       4  81.82%   48, 55, 68-69
plugins/manager.py                             173      16  90.75%   102-107, 179, 201, 219-220, 232, 271-272, 372-375, 387-388
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                          101      10  90.10%   178-180, 228-229, 255-257, 288-289
plugins/apis/usgs.py                           182      25  86.26%   161, 267, 301, 343-345, 350, 378-379, 384, 414-421, 432-437, 459-465
plugins/authentication/__init__.py               6       1  83.33%   31
plugins/authentication/aws_auth.py             124      35  71.77%   52-54, 69-70, 142-149, 177-203, 226, 258-262, 279, 303, 319-320
plugins/authentication/base.py                  22       4  81.82%   45, 58, 81, 95
plugins/authentication/generic.py               16       3  81.25%   50, 55, 65
plugins/authentication/header.py                19       0  100.00%
plugins/authentication/keycloak.py              46       7  84.78%   153-156, 177-182
plugins/authentication/openid_connect.py       232      28  87.93%   91-92, 104-122, 169, 175-203, 211, 350-353, 379, 420
plugins/authentication/qsauth.py                34       1  97.06%   91
plugins/authentication/sas_auth.py              57       3  94.74%   68, 89, 135
plugins/authentication/token.py                128       9  92.97%   180, 217, 288-289, 339-343
plugins/authentication/token_exchange.py        36      14  61.11%   75, 93-121
plugins/crunch/__init__.py                       0       0  100.00%
plugins/crunch/base.py                          10       1  90.00%   43
plugins/crunch/filter_date.py                   59      14  76.27%   52-57, 69, 78, 87, 90, 100-102, 109-111, 118
plugins/crunch/filter_latest_intersect.py       47      33  29.79%   49-54, 67-113
plugins/crunch/filter_latest_tpl_name.py        31      20  35.48%   46-54, 64-95
plugins/crunch/filter_overlap.py                63      25  60.32%   62-65, 72-75, 81, 85, 89, 100-116, 131-157
plugins/crunch/filter_property.py               30       5  83.33%   55-60, 63-64
plugins/download/__init__.py                     0       0  100.00%
plugins/download/aws.py                        401      76  81.05%   270, 304, 353-356, 386-387, 395-399, 479-482, 522-524, 528, 559-560, 566-570, 601, 666-674, 738-831, 843-848, 886, 912, 957-959, 1011
plugins/download/base.py                       280      35  87.50%   133, 162, 309-310, 368-369, 411, 415-426, 440, 517-521, 551, 586-587, 612-621, 680, 701, 723, 731, 765
plugins/download/http.py                       557      78  86.00%   237, 279-282, 344-347, 350, 357-362, 393-395, 412, 427, 485, 520, 534, 548, 556-560, 576-581, 592, 611, 648-651, 672, 682, 689, 709, 849, 881, 911-920, 956, 981-982, 1001-1006, 1015, 1030-1032, 1036, 1039, 1054-1055, 1139, 1191, 1233-1234, 1246, 1256, 1306-1307, 1337, 1357, 1398-1400, 1454-1455
plugins/search/__init__.py                      25       0  100.00%
plugins/search/base.py                         191      18  90.58%   108, 112, 136-142, 199-202, 295, 316, 441, 491, 513-516, 525
plugins/search/build_search_result.py          526      81  84.60%   254-255, 291, 294, 332, 335, 366-368, 611-622, 752, 776, 778, 845, 853-857, 878, 890, 916, 961, 985, 1019-1034, 1082, 1107, 1110, 1114, 1154-1174, 1215, 1242-1243, 1252-1261, 1325, 1340, 1346, 1365-1374, 1495-1496, 1540, 1549-1551, 1608, 1656-1666
plugins/search/cop_marine.py                   268      56  79.10%   57, 65-67, 77-78, 83, 88-89, 105, 107, 110, 176-177, 220, 236, 242, 246, 250, 261, 272-273, 281, 318-321, 327, 348, 352, 356, 360, 364-368, 374-377, 380-397, 414-417, 470-474, 479, 491
plugins/search/creodias_s3.py                   29       1  96.55%   59
plugins/search/csw.py                          112      87  22.32%   99-100, 104-105, 113-170, 176-189, 197-229, 247-288
plugins/search/qssearch.py                     821      94  88.55%   415-416, 533-534, 557-558, 570-574, 789-795, 853, 949, 956, 1027, 1048, 1051-1052, 1070, 1079-1080, 1107, 1181, 1190, 1195-1212, 1221, 1236, 1245-1248, 1258, 1286, 1369, 1392, 1465-1466, 1472, 1562, 1669-1673, 1739, 1742, 1746-1747, 1768-1771, 1783, 1805-1817, 1824, 1859-1861, 1884-1890, 1897, 1951, 1974, 1979-1980, 1995, 2001, 2011, 2095, 2099, 2110, 2134, 2147, 2155-2165, 2203-2207
plugins/search/stac_list_assets.py              25      10  60.00%   44-51, 75-85
plugins/search/static_stac_search.py            84      18  78.57%   99-127, 171-174, 187, 229
types/__init__.py                              161      44  72.67%   67, 71, 80-84, 95-107, 135-137, 144-149, 194, 213, 216, 254, 264-280, 285, 287, 309, 314, 322, 332
types/bbox.py                                   43      19  55.81%   46-61, 72-74, 85-87, 99-101, 113-115, 123
types/download_args.py                           9       0  100.00%
types/queryables.py                             54       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/stac_extensions.py                       137       1  99.27%   240
types/stac_metadata.py                         108      17  84.26%   70, 85, 106-107, 140, 152-166, 175-182
utils/__init__.py                              597      45  92.46%   71, 170, 203-204, 213-239, 242, 257, 337-341, 416-420, 500, 540-541, 570, 945-948, 956-957, 999, 1018-1019, 1048, 1066-1067, 1179, 1246, 1410, 1499, 1514, 1523, 1535, 1710
utils/cache.py                                  22       0  100.00%
utils/dates.py                                  61       4  93.44%   75-77, 150
utils/env.py                                     3       0  100.00%
utils/exceptions.py                             47       0  100.00%
utils/free_text_search.py                       65       2  96.92%   83, 91
utils/import_system.py                          28      19  32.14%   64-78, 89-99
utils/logging.py                                28       1  96.43%   41
utils/notebook.py                               44      23  47.73%   25-29, 36-41, 58-62, 72-78, 83-87
utils/repr.py                                   38       0  100.00%
utils/requests.py                               55      29  47.27%   51-52, 64, 85-96, 107-124, 128
utils/s3.py                                    240      12  95.00%   200-203, 245, 263, 489, 537-538, 585, 660, 686
utils/stac_reader.py                           113      44  61.06%   63-85, 95-97, 101, 138, 154-159, 206-216, 226-256
TOTAL                                         9830    1318  86.59%

Diff against develop

Filename                           Stmts    Miss  Cover
-------------------------------  -------  ------  --------
api/core.py                           +2       0  +0.02%
api/product/_product.py               +6       0  +0.22%
api/product/metadata_mapping.py       +1       0  +100.00%
plugins/search/base.py                +3       0  +0.15%
plugins/search/qssearch.py            +1       0  +0.01%
types/queryables.py                  -30       0  +100.00%
types/stac_extensions.py            +137      +1  +99.27%
types/stac_metadata.py              +108     +17  +84.26%
utils/__init__.py                     +1       0  +0.01%
TOTAL                               +229     +18  +0.13%

Results for commit: e23ca98

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

@sbrunato sbrunato linked an issue Dec 9, 2025 that may be closed by this pull request
@sbrunato sbrunato force-pushed the stac-serialize branch 2 times, most recently from 184200e to e23ca98 Compare December 10, 2025 08:34
@eodag-bot
Copy link
Collaborator

badge

Code Coverage (Windows)

Details
Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         247      10  95.95%   104-115, 629
config.py                                      302      24  92.05%   69-71, 74, 77, 80, 84, 88, 92-94, 582-584, 689-691, 710, 718, 748-753, 755
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/collection.py                              125       7  94.40%   173, 209, 212, 302, 305, 323, 326
api/core.py                                    746      50  93.30%   262, 548, 596, 639, 679, 699, 740-745, 770, 854-873, 887, 893, 1046, 1051, 1146, 1283, 1326, 1339, 1406, 1420-1421, 1497-1502, 1514-1517, 1851, 2101, 2164-2165, 2194-2195
api/provider.py                                380      35  90.79%   186, 190-191, 316-337, 405, 520, 524-525, 530-533, 544, 620-630, 820-821, 869, 876, 907-910, 946-947, 955-956
api/search_result.py                           181      19  89.50%   104, 113, 120, 134, 178, 195, 295, 350-353, 423, 428-429, 463, 477, 500-501, 507
api/product/__init__.py                         18       2  88.89%   60, 62
api/product/_assets.py                          52       5  90.38%   97, 183, 191, 194-198
api/product/_product.py                        223      18  91.93%   187, 263-264, 282-283, 392, 421, 428, 535, 555, 578-581, 590-593, 639
api/product/metadata_mapping.py                788      53  93.27%   125-127, 220-225, 246, 304-305, 393, 414, 466-467, 504, 525-528, 551, 563-564, 605, 628, 658-663, 728-733, 745, 753, 985, 1160, 1169-1173, 1190-1195, 1328, 1351, 1360, 1382, 1387, 1439, 1511, 1532, 1558, 1572, 1597, 1643, 1712, 1787
api/product/drivers/__init__.py                 11       0  100.00%
api/product/drivers/base.py                     23       0  100.00%
api/product/drivers/generic.py                   7       0  100.00%
api/product/drivers/sentinel1.py                15       0  100.00%
api/product/drivers/sentinel2.py                15       0  100.00%
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 22       4  81.82%   48, 55, 68-69
plugins/manager.py                             173      16  90.75%   102-107, 179, 201, 219-220, 232, 271-272, 372-375, 387-388
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                          101      10  90.10%   178-180, 228-229, 255-257, 288-289
plugins/apis/usgs.py                           182      25  86.26%   161, 267, 301, 343-345, 350, 378-379, 384, 414-421, 432-437, 459-465
plugins/authentication/__init__.py               6       1  83.33%   31
plugins/authentication/aws_auth.py             124      35  71.77%   52-54, 69-70, 142-149, 177-203, 226, 258-262, 279, 303, 319-320
plugins/authentication/base.py                  22       4  81.82%   45, 58, 81, 95
plugins/authentication/generic.py               16       3  81.25%   50, 55, 65
plugins/authentication/header.py                19       0  100.00%
plugins/authentication/keycloak.py              46       7  84.78%   153-156, 177-182
plugins/authentication/openid_connect.py       232      28  87.93%   91-92, 104-122, 169, 175-203, 211, 350-353, 379, 420
plugins/authentication/qsauth.py                34       1  97.06%   91
plugins/authentication/sas_auth.py              57       3  94.74%   68, 89, 135
plugins/authentication/token.py                128       9  92.97%   180, 217, 288-289, 339-343
plugins/authentication/token_exchange.py        36      14  61.11%   75, 93-121
plugins/crunch/__init__.py                       0       0  100.00%
plugins/crunch/base.py                          10       1  90.00%   43
plugins/crunch/filter_date.py                   59      14  76.27%   52-57, 69, 78, 87, 90, 100-102, 109-111, 118
plugins/crunch/filter_latest_intersect.py       47      33  29.79%   49-54, 67-113
plugins/crunch/filter_latest_tpl_name.py        31      20  35.48%   46-54, 64-95
plugins/crunch/filter_overlap.py                63      25  60.32%   62-65, 72-75, 81, 85, 89, 100-116, 131-157
plugins/crunch/filter_property.py               30       5  83.33%   55-60, 63-64
plugins/download/__init__.py                     0       0  100.00%
plugins/download/aws.py                        401      76  81.05%   270, 304, 353-356, 386-387, 395-399, 479-482, 522-524, 528, 559-560, 566-570, 601, 666-674, 738-831, 843-848, 886, 912, 957-959, 1011
plugins/download/base.py                       280      37  86.79%   133, 162, 229-231, 309-310, 368-369, 411, 415-426, 440, 517-521, 551, 586-587, 612-621, 680, 701, 723, 731, 765
plugins/download/http.py                       557      78  86.00%   237, 279-282, 344-347, 350, 357-362, 393-395, 412, 427, 485, 520, 534, 548, 556-560, 576-581, 592, 611, 648-651, 672, 682, 689, 709, 849, 881, 911-920, 956, 981-982, 1001-1006, 1015, 1030-1032, 1036, 1039, 1054-1055, 1139, 1191, 1233-1234, 1246, 1256, 1306-1307, 1337, 1357, 1398-1400, 1454-1455
plugins/search/__init__.py                      25       0  100.00%
plugins/search/base.py                         191      18  90.58%   108, 112, 136-142, 199-202, 295, 316, 441, 491, 513-516, 525
plugins/search/build_search_result.py          526      81  84.60%   254-255, 291, 294, 332, 335, 366-368, 611-622, 752, 776, 778, 845, 853-857, 878, 890, 916, 961, 985, 1019-1034, 1082, 1107, 1110, 1114, 1154-1174, 1215, 1242-1243, 1252-1261, 1325, 1340, 1346, 1365-1374, 1495-1496, 1540, 1549-1551, 1608, 1656-1666
plugins/search/cop_marine.py                   268      56  79.10%   57, 65-67, 77-78, 83, 88-89, 105, 107, 110, 176-177, 220, 236, 242, 246, 250, 261, 272-273, 281, 318-321, 327, 348, 352, 356, 360, 364-368, 374-377, 380-397, 414-417, 470-474, 479, 491
plugins/search/creodias_s3.py                   29       1  96.55%   59
plugins/search/csw.py                          112      87  22.32%   99-100, 104-105, 113-170, 176-189, 197-229, 247-288
plugins/search/qssearch.py                     821      94  88.55%   415-416, 533-534, 557-558, 570-574, 789-795, 853, 949, 956, 1027, 1048, 1051-1052, 1070, 1079-1080, 1107, 1181, 1190, 1195-1212, 1221, 1236, 1245-1248, 1258, 1286, 1369, 1392, 1465-1466, 1472, 1562, 1669-1673, 1739, 1742, 1746-1747, 1768-1771, 1783, 1805-1817, 1824, 1859-1861, 1884-1890, 1897, 1951, 1974, 1979-1980, 1995, 2001, 2011, 2095, 2099, 2110, 2134, 2147, 2155-2165, 2203-2207
plugins/search/stac_list_assets.py              25      10  60.00%   44-51, 75-85
plugins/search/static_stac_search.py            84      18  78.57%   99-127, 171-174, 187, 229
types/__init__.py                              161      44  72.67%   67, 71, 80-84, 95-107, 135-137, 144-149, 194, 213, 216, 254, 264-280, 285, 287, 309, 314, 322, 332
types/bbox.py                                   43      19  55.81%   46-61, 72-74, 85-87, 99-101, 113-115, 123
types/download_args.py                           9       0  100.00%
types/queryables.py                             54       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/stac_extensions.py                       137       1  99.27%   240
types/stac_metadata.py                         108      17  84.26%   70, 85, 106-107, 140, 152-166, 175-182
utils/__init__.py                              597      45  92.46%   71, 170, 203-204, 213-239, 242, 257, 337-341, 416-420, 500, 540-541, 570, 945-948, 956-957, 999, 1018-1019, 1048, 1066-1067, 1179, 1246, 1410, 1499, 1514, 1523, 1535, 1710
utils/cache.py                                  22       0  100.00%
utils/dates.py                                  61       4  93.44%   75-77, 150
utils/env.py                                     3       0  100.00%
utils/exceptions.py                             47       0  100.00%
utils/free_text_search.py                       65       2  96.92%   83, 91
utils/import_system.py                          28      19  32.14%   64-78, 89-99
utils/logging.py                                28       1  96.43%   41
utils/notebook.py                               44      23  47.73%   25-29, 36-41, 58-62, 72-78, 83-87
utils/repr.py                                   38       0  100.00%
utils/requests.py                               55      29  47.27%   51-52, 64, 85-96, 107-124, 128
utils/s3.py                                    240      12  95.00%   200-203, 245, 263, 489, 537-538, 585, 660, 686
utils/stac_reader.py                           113      44  61.06%   63-85, 95-97, 101, 138, 154-159, 206-216, 226-256
TOTAL                                         9830    1320  86.57%

Diff against develop

Filename                           Stmts    Miss  Cover
-------------------------------  -------  ------  --------
api/core.py                           +2       0  +0.02%
api/product/_product.py               +6       0  +0.22%
api/product/metadata_mapping.py       +1       0  +100.00%
plugins/search/base.py                +3       0  +0.15%
plugins/search/qssearch.py            +1       0  +0.01%
types/queryables.py                  -30       0  +100.00%
types/stac_extensions.py            +137      +1  +99.27%
types/stac_metadata.py              +108     +17  +84.26%
utils/__init__.py                     +1       0  +0.01%
TOTAL                               +229     +18  +0.13%

Results for commit: e23ca98

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

@eodag-bot
Copy link
Collaborator

eodag-bot commented Jan 16, 2026

badge

Code Coverage (Ubuntu)

Details
Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         247      10  95.95%   104-115, 629
config.py                                      305      24  92.13%   70-72, 75, 78, 81, 85, 89, 93-95, 583-585, 707-709, 728, 736, 766-771, 773
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/collection.py                              150       8  94.67%   176, 212, 215, 322, 361, 364, 382, 385
api/core.py                                    757      50  93.39%   263, 549, 597, 640, 680, 700, 741-746, 771, 855-874, 888, 894, 1047, 1052, 1147, 1284, 1327, 1340, 1407, 1421-1422, 1498-1503, 1515-1518, 2006, 2128, 2191-2192, 2221-2222
api/provider.py                                381      35  90.81%   186, 190-191, 316-337, 405, 521, 525-526, 531-534, 545, 621-631, 821-822, 870, 877, 908-911, 947-948, 956-957
api/search_result.py                           181      19  89.50%   104, 113, 120, 134, 178, 195, 295, 350-353, 423, 428-429, 463, 477, 500-501, 507
api/product/__init__.py                         18       2  88.89%   60, 62
api/product/_assets.py                          52       5  90.38%   97, 183, 191, 194-198
api/product/_product.py                        228      18  92.11%   189, 278-279, 297-298, 407, 436, 443, 550, 570, 593-596, 605-608, 654
api/product/metadata_mapping.py                788      53  93.27%   125-127, 220-225, 246, 304-305, 393, 414, 466-467, 504, 525-528, 551, 563-564, 605, 628, 658-663, 728-733, 745, 753, 985, 1160, 1169-1173, 1190-1195, 1328, 1351, 1360, 1382, 1387, 1439, 1511, 1532, 1558, 1572, 1597, 1643, 1712, 1787
api/product/drivers/__init__.py                 12       0  100.00%
api/product/drivers/base.py                     24       0  100.00%
api/product/drivers/generic.py                   7       0  100.00%
api/product/drivers/sentinel1.py                15       0  100.00%
api/product/drivers/sentinel2.py                15       0  100.00%
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 22       4  81.82%   48, 55, 68-69
plugins/manager.py                             173      16  90.75%   102-107, 179, 201, 219-220, 232, 271-272, 372-375, 387-388
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                          101      10  90.10%   178-180, 228-229, 255-257, 288-289
plugins/apis/usgs.py                           182      25  86.26%   161, 267, 301, 343-345, 350, 378-379, 384, 414-421, 432-437, 459-465
plugins/authentication/__init__.py               6       1  83.33%   31
plugins/authentication/aws_auth.py             124      35  71.77%   52-54, 69-70, 142-149, 177-203, 226, 258-262, 279, 303, 319-320
plugins/authentication/base.py                  22       4  81.82%   45, 58, 81, 95
plugins/authentication/generic.py               16       3  81.25%   50, 55, 65
plugins/authentication/header.py                19       0  100.00%
plugins/authentication/keycloak.py              46       7  84.78%   153-156, 177-182
plugins/authentication/openid_connect.py       232      28  87.93%   91-92, 104-122, 169, 175-203, 211, 350-353, 379, 420
plugins/authentication/qsauth.py                34       1  97.06%   91
plugins/authentication/sas_auth.py              57       3  94.74%   68, 89, 135
plugins/authentication/token.py                128       9  92.97%   180, 217, 288-289, 339-343
plugins/authentication/token_exchange.py        36      14  61.11%   75, 93-121
plugins/crunch/__init__.py                       0       0  100.00%
plugins/crunch/base.py                          10       1  90.00%   43
plugins/crunch/filter_date.py                   59      14  76.27%   52-57, 69, 78, 87, 90, 100-102, 109-111, 118
plugins/crunch/filter_latest_intersect.py       47      33  29.79%   49-54, 67-113
plugins/crunch/filter_latest_tpl_name.py        31      20  35.48%   46-54, 64-95
plugins/crunch/filter_overlap.py                63      25  60.32%   62-65, 72-75, 81, 85, 89, 100-116, 131-157
plugins/crunch/filter_property.py               30       5  83.33%   55-60, 63-64
plugins/download/__init__.py                     0       0  100.00%
plugins/download/aws.py                        401      76  81.05%   270, 304, 353-356, 386-387, 395-399, 479-482, 522-524, 528, 559-560, 566-570, 601, 666-674, 738-833, 845-850, 888, 914, 959-961, 1013
plugins/download/base.py                       280      35  87.50%   133, 162, 309-310, 368-369, 411, 415-426, 440, 517-521, 551, 586-587, 612-621, 680, 701, 723, 731, 765
plugins/download/http.py                       559      78  86.05%   229, 271-274, 336-339, 342, 349-354, 385-387, 404, 419, 479, 514, 528, 542, 550-554, 570-575, 586, 605, 642-645, 666, 676, 683, 703, 843, 875, 905-914, 950, 975-976, 995-1000, 1009, 1024-1026, 1030, 1033, 1048-1049, 1133, 1185, 1227-1228, 1240, 1250, 1300-1301, 1331, 1351, 1392-1394, 1448-1449
plugins/search/__init__.py                      25       0  100.00%
plugins/search/base.py                         191      18  90.58%   108, 112, 136-142, 199-202, 295, 316, 441, 491, 513-516, 525
plugins/search/build_search_result.py          504      83  83.53%   259-260, 296, 300, 320, 550-561, 576-578, 701, 725, 727, 794, 802-806, 827, 837, 863, 908, 932, 960, 978-993, 1043, 1068, 1071, 1075, 1084, 1090, 1128-1149, 1190, 1217-1218, 1227-1236, 1300, 1315, 1321, 1340-1349, 1470-1471, 1515, 1524-1526, 1583, 1631-1641
plugins/search/cop_marine.py                   268      56  79.10%   57, 65-67, 77-78, 83, 88-89, 105, 107, 110, 176-177, 220, 236, 242, 246, 250, 261, 272-273, 281, 318-321, 327, 348, 352, 356, 360, 364-368, 374-377, 380-397, 414-417, 470-474, 479, 491
plugins/search/creodias_s3.py                   29       1  96.55%   59
plugins/search/csw.py                          112      87  22.32%   99-100, 104-105, 113-170, 176-189, 197-229, 247-288
plugins/search/qssearch.py                     822      94  88.56%   415-416, 533-534, 557-558, 570-574, 789-795, 853, 949, 956, 1027, 1048, 1051-1052, 1070, 1079-1080, 1107, 1181, 1190, 1195-1212, 1221, 1236, 1245-1248, 1258, 1286, 1369, 1392, 1465-1466, 1472, 1562, 1669-1673, 1739, 1742, 1746-1747, 1768-1771, 1783, 1805-1817, 1824, 1859-1861, 1884-1890, 1897, 1951, 1974, 1979-1980, 1995, 2001, 2011, 2095, 2099, 2110, 2134, 2147, 2155-2165, 2203-2207
plugins/search/stac_list_assets.py              25      10  60.00%   44-51, 75-85
plugins/search/static_stac_search.py            84      18  78.57%   99-127, 171-174, 187, 229
types/__init__.py                              167      43  74.25%   58, 62, 71-75, 86-98, 126-128, 135-140, 216, 219, 257, 267-283, 288, 290, 312, 317, 325, 335
types/bbox.py                                   39      19  51.28%   46-61, 72-74, 85-87, 99-101, 113-115, 123
types/download_args.py                          10       0  100.00%
types/queryables.py                             88       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/stac_extensions.py                       137       1  99.27%   240
types/stac_metadata.py                          92      17  81.52%   70, 85, 106-107, 140, 152-166, 175-182
utils/__init__.py                              610      45  92.62%   71, 172, 205-206, 215-241, 244, 259, 339-343, 418-422, 502, 542-543, 572, 947-950, 958-959, 1001, 1020-1021, 1050, 1068-1069, 1179, 1267, 1431, 1520, 1535, 1544, 1556, 1746
utils/cache.py                                  22       0  100.00%
utils/dates.py                                 113       4  96.46%   171, 329-331
utils/env.py                                     3       0  100.00%
utils/exceptions.py                             47       0  100.00%
utils/free_text_search.py                       65       2  96.92%   83, 91
utils/import_system.py                          28      19  32.14%   64-78, 89-99
utils/logging.py                                28       1  96.43%   41
utils/notebook.py                               44      23  47.73%   25-29, 36-41, 58-62, 72-78, 83-87
utils/repr.py                                   38       0  100.00%
utils/requests.py                               55      29  47.27%   51-52, 64, 85-96, 107-124, 128
utils/s3.py                                    240      12  95.00%   200-203, 245, 263, 489, 537-538, 585, 660, 686
utils/stac_reader.py                           113      44  61.06%   63-85, 95-97, 101, 138, 154-159, 206-216, 226-256
TOTAL                                         9944    1320  86.73%

Diff against develop

Filename                           Stmts    Miss  Cover
-------------------------------  -------  ------  --------
api/collection.py                    +25      +1  +0.27%
api/core.py                          +18       0  +0.16%
api/product/_product.py              +11       0  +0.40%
api/product/metadata_mapping.py       +1       0  +100.00%
plugins/search/base.py                +3       0  +0.15%
plugins/search/qssearch.py            +1       0  +0.01%
types/queryables.py                  -30       0  +100.00%
types/stac_extensions.py            +137      +1  +99.27%
types/stac_metadata.py               +92     +17  +81.52%
utils/__init__.py                     +2       0  +0.02%
utils/s3.py                            0      -1  +0.42%
TOTAL                               +260     +18  +0.17%

Results for commit: d5ee776

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

@eodag-bot
Copy link
Collaborator

eodag-bot commented Jan 16, 2026

badge

Code Coverage (Windows)

Details
Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         247      10  95.95%   104-115, 629
config.py                                      305      24  92.13%   70-72, 75, 78, 81, 85, 89, 93-95, 583-585, 707-709, 728, 736, 766-771, 773
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/collection.py                              150       8  94.67%   176, 212, 215, 322, 361, 364, 382, 385
api/core.py                                    757      50  93.39%   263, 549, 597, 640, 680, 700, 741-746, 771, 855-874, 888, 894, 1047, 1052, 1147, 1284, 1327, 1340, 1407, 1421-1422, 1498-1503, 1515-1518, 2006, 2128, 2191-2192, 2221-2222
api/provider.py                                381      35  90.81%   186, 190-191, 316-337, 405, 521, 525-526, 531-534, 545, 621-631, 821-822, 870, 877, 908-911, 947-948, 956-957
api/search_result.py                           181      19  89.50%   104, 113, 120, 134, 178, 195, 295, 350-353, 423, 428-429, 463, 477, 500-501, 507
api/product/__init__.py                         18       2  88.89%   60, 62
api/product/_assets.py                          52       5  90.38%   97, 183, 191, 194-198
api/product/_product.py                        228      18  92.11%   189, 278-279, 297-298, 407, 436, 443, 550, 570, 593-596, 605-608, 654
api/product/metadata_mapping.py                788      53  93.27%   125-127, 220-225, 246, 304-305, 393, 414, 466-467, 504, 525-528, 551, 563-564, 605, 628, 658-663, 728-733, 745, 753, 985, 1160, 1169-1173, 1190-1195, 1328, 1351, 1360, 1382, 1387, 1439, 1511, 1532, 1558, 1572, 1597, 1643, 1712, 1787
api/product/drivers/__init__.py                 12       0  100.00%
api/product/drivers/base.py                     24       0  100.00%
api/product/drivers/generic.py                   7       0  100.00%
api/product/drivers/sentinel1.py                15       0  100.00%
api/product/drivers/sentinel2.py                15       0  100.00%
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 22       4  81.82%   48, 55, 68-69
plugins/manager.py                             173      16  90.75%   102-107, 179, 201, 219-220, 232, 271-272, 372-375, 387-388
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                          101      10  90.10%   178-180, 228-229, 255-257, 288-289
plugins/apis/usgs.py                           182      25  86.26%   161, 267, 301, 343-345, 350, 378-379, 384, 414-421, 432-437, 459-465
plugins/authentication/__init__.py               6       1  83.33%   31
plugins/authentication/aws_auth.py             124      35  71.77%   52-54, 69-70, 142-149, 177-203, 226, 258-262, 279, 303, 319-320
plugins/authentication/base.py                  22       4  81.82%   45, 58, 81, 95
plugins/authentication/generic.py               16       3  81.25%   50, 55, 65
plugins/authentication/header.py                19       0  100.00%
plugins/authentication/keycloak.py              46       7  84.78%   153-156, 177-182
plugins/authentication/openid_connect.py       232      28  87.93%   91-92, 104-122, 169, 175-203, 211, 350-353, 379, 420
plugins/authentication/qsauth.py                34       1  97.06%   91
plugins/authentication/sas_auth.py              57       3  94.74%   68, 89, 135
plugins/authentication/token.py                128       9  92.97%   180, 217, 288-289, 339-343
plugins/authentication/token_exchange.py        36      14  61.11%   75, 93-121
plugins/crunch/__init__.py                       0       0  100.00%
plugins/crunch/base.py                          10       1  90.00%   43
plugins/crunch/filter_date.py                   59      14  76.27%   52-57, 69, 78, 87, 90, 100-102, 109-111, 118
plugins/crunch/filter_latest_intersect.py       47      33  29.79%   49-54, 67-113
plugins/crunch/filter_latest_tpl_name.py        31      20  35.48%   46-54, 64-95
plugins/crunch/filter_overlap.py                63      25  60.32%   62-65, 72-75, 81, 85, 89, 100-116, 131-157
plugins/crunch/filter_property.py               30       5  83.33%   55-60, 63-64
plugins/download/__init__.py                     0       0  100.00%
plugins/download/aws.py                        401      76  81.05%   270, 304, 353-356, 386-387, 395-399, 479-482, 522-524, 528, 559-560, 566-570, 601, 666-674, 738-833, 845-850, 888, 914, 959-961, 1013
plugins/download/base.py                       280      37  86.79%   133, 162, 229-231, 309-310, 368-369, 411, 415-426, 440, 517-521, 551, 586-587, 612-621, 680, 701, 723, 731, 765
plugins/download/http.py                       559      78  86.05%   229, 271-274, 336-339, 342, 349-354, 385-387, 404, 419, 479, 514, 528, 542, 550-554, 570-575, 586, 605, 642-645, 666, 676, 683, 703, 843, 875, 905-914, 950, 975-976, 995-1000, 1009, 1024-1026, 1030, 1033, 1048-1049, 1133, 1185, 1227-1228, 1240, 1250, 1300-1301, 1331, 1351, 1392-1394, 1448-1449
plugins/search/__init__.py                      25       0  100.00%
plugins/search/base.py                         191      18  90.58%   108, 112, 136-142, 199-202, 295, 316, 441, 491, 513-516, 525
plugins/search/build_search_result.py          504      83  83.53%   259-260, 296, 300, 320, 550-561, 576-578, 701, 725, 727, 794, 802-806, 827, 837, 863, 908, 932, 960, 978-993, 1043, 1068, 1071, 1075, 1084, 1090, 1128-1149, 1190, 1217-1218, 1227-1236, 1300, 1315, 1321, 1340-1349, 1470-1471, 1515, 1524-1526, 1583, 1631-1641
plugins/search/cop_marine.py                   268      56  79.10%   57, 65-67, 77-78, 83, 88-89, 105, 107, 110, 176-177, 220, 236, 242, 246, 250, 261, 272-273, 281, 318-321, 327, 348, 352, 356, 360, 364-368, 374-377, 380-397, 414-417, 470-474, 479, 491
plugins/search/creodias_s3.py                   29       1  96.55%   59
plugins/search/csw.py                          112      87  22.32%   99-100, 104-105, 113-170, 176-189, 197-229, 247-288
plugins/search/qssearch.py                     822      94  88.56%   415-416, 533-534, 557-558, 570-574, 789-795, 853, 949, 956, 1027, 1048, 1051-1052, 1070, 1079-1080, 1107, 1181, 1190, 1195-1212, 1221, 1236, 1245-1248, 1258, 1286, 1369, 1392, 1465-1466, 1472, 1562, 1669-1673, 1739, 1742, 1746-1747, 1768-1771, 1783, 1805-1817, 1824, 1859-1861, 1884-1890, 1897, 1951, 1974, 1979-1980, 1995, 2001, 2011, 2095, 2099, 2110, 2134, 2147, 2155-2165, 2203-2207
plugins/search/stac_list_assets.py              25      10  60.00%   44-51, 75-85
plugins/search/static_stac_search.py            84      18  78.57%   99-127, 171-174, 187, 229
types/__init__.py                              167      43  74.25%   58, 62, 71-75, 86-98, 126-128, 135-140, 216, 219, 257, 267-283, 288, 290, 312, 317, 325, 335
types/bbox.py                                   39      19  51.28%   46-61, 72-74, 85-87, 99-101, 113-115, 123
types/download_args.py                          10       0  100.00%
types/queryables.py                             88       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/stac_extensions.py                       137       1  99.27%   240
types/stac_metadata.py                          92      17  81.52%   70, 85, 106-107, 140, 152-166, 175-182
utils/__init__.py                              610      45  92.62%   71, 172, 205-206, 215-241, 244, 259, 339-343, 418-422, 502, 542-543, 572, 947-950, 958-959, 1001, 1020-1021, 1050, 1068-1069, 1179, 1267, 1431, 1520, 1535, 1544, 1556, 1746
utils/cache.py                                  22       0  100.00%
utils/dates.py                                 113       4  96.46%   171, 329-331
utils/env.py                                     3       0  100.00%
utils/exceptions.py                             47       0  100.00%
utils/free_text_search.py                       65       2  96.92%   83, 91
utils/import_system.py                          28      19  32.14%   64-78, 89-99
utils/logging.py                                28       1  96.43%   41
utils/notebook.py                               44      23  47.73%   25-29, 36-41, 58-62, 72-78, 83-87
utils/repr.py                                   38       0  100.00%
utils/requests.py                               55      29  47.27%   51-52, 64, 85-96, 107-124, 128
utils/s3.py                                    240      12  95.00%   200-203, 245, 263, 489, 537-538, 585, 660, 686
utils/stac_reader.py                           113      44  61.06%   63-85, 95-97, 101, 138, 154-159, 206-216, 226-256
TOTAL                                         9944    1322  86.71%

Diff against develop

Filename                           Stmts    Miss  Cover
-------------------------------  -------  ------  --------
api/collection.py                    +25      +1  +0.27%
api/core.py                          +18       0  +0.16%
api/product/_product.py              +11       0  +0.40%
api/product/metadata_mapping.py       +1       0  +100.00%
plugins/search/base.py                +3       0  +0.15%
plugins/search/qssearch.py            +1       0  +0.01%
types/queryables.py                  -30       0  +100.00%
types/stac_extensions.py            +137      +1  +99.27%
types/stac_metadata.py               +92     +17  +81.52%
utils/__init__.py                     +2       0  +0.02%
TOTAL                               +260     +19  +0.17%

Results for commit: d5ee776

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

serialize/deserialize using STAC

3 participants