Skip to content

fix(core): get quicklook from assets#2217

Merged
sbrunato merged 2 commits into
v5_download_link_assetfrom
get-quicklook-asset
Jun 2, 2026
Merged

fix(core): get quicklook from assets#2217
sbrunato merged 2 commits into
v5_download_link_assetfrom
get-quicklook-asset

Conversation

@sbrunato

@sbrunato sbrunato commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator

Following #2091, update EOProduct.get_quicklook method to get quicklook from assets instead of properties

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Test Results

    4 files      4 suites   4m 43s ⏱️
  866 tests   866 ✅ 0 💤 0 ❌
3 514 runs  3 512 ✅ 2 💤 0 ❌

Results for commit 3a4e945.

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

badge

Code Coverage (Ubuntu)

Details
Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         252      11  95.63%   105-116, 378, 645
config.py                                      306      24  92.16%   70-72, 75, 78, 81, 85, 89, 93-95, 587-589, 711-713, 732, 740, 770-775, 777
crunch.py                                        2       0  100.00%
api/__init__.py                                  0       0  100.00%
api/collection.py                              151       8  94.70%   177, 213, 216, 323, 362, 365, 383, 386
api/core.py                                    774      57  92.64%   263, 549, 597, 640, 680, 700, 741-746, 771, 855-874, 888, 894, 1047, 1052, 1151, 1190-1191, 1287-1288, 1314, 1345-1346, 1372, 1385, 1446-1447, 1478-1479, 1553-1558, 1570-1573, 1685, 1910, 2067, 2178, 2266-2267
api/provider.py                                382      40  89.53%   186, 190-191, 316-337, 405, 521, 525-526, 531-534, 545, 621-631, 821-822, 870, 877, 891, 914-917, 951-958, 962-963
api/search_result.py                           138      12  91.30%   111, 123, 133, 154, 208, 266, 278, 413, 468-471
api/product/__init__.py                          7       0  100.00%
api/product/_assets.py                         132       5  96.21%   75, 202, 340, 351-355
api/product/_product.py                        314      24  92.36%   200, 356, 382-385, 422, 441-442, 551, 580, 587, 626, 743, 787-790, 798-801, 859, 925, 937, 1004
api/product/metadata_mapping.py                890      78  91.24%   126-128, 225-230, 254, 313-314, 352-353, 394, 415, 478-479, 516, 537-540, 563, 575-576, 617, 640, 665-668, 670-675, 740-745, 754, 760, 776, 784, 815, 820-833, 1037, 1190, 1212, 1221-1225, 1243-1247, 1380, 1403, 1412, 1434, 1439, 1491, 1563, 1580, 1592, 1618, 1632, 1657, 1703, 1754-1755, 1772, 1847, 1882
api/product/drivers/__init__.py                 11       0  100.00%
api/product/drivers/base.py                     32       0  100.00%
api/product/drivers/generic.py                  11       0  100.00%
api/product/drivers/sentinel1.py                33       0  100.00%
api/product/drivers/sentinel2.py                33       0  100.00%
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 25       2  92.00%   48, 55
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                           95       8  91.58%   163-165, 213-214, 240-242
plugins/apis/usgs.py                           179      27  84.92%   138-139, 160, 248, 281, 323-325, 330, 358-359, 364, 394-401, 412-417, 439-445
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/eoiam.py                 98       1  98.98%   170
plugins/authentication/generic.py               16       3  81.25%   50, 55, 65
plugins/authentication/header.py                19       0  100.00%
plugins/authentication/keycloak.py              46       4  91.30%   154, 177-182
plugins/authentication/openid_connect.py       235      19  91.91%   98-99, 107-125, 172, 180, 194, 214, 353-356, 382, 423
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                141       9  93.62%   192, 229, 309-310, 358-362
plugins/authentication/token_exchange.py        36      14  61.11%   75, 93-121
plugins/crunch/__init__.py                       6       0  100.00%
plugins/crunch/base.py                          12       0  100.00%
plugins/crunch/filter_date.py                   47       0  100.00%
plugins/crunch/filter_latest_intersect.py       52       6  88.46%   87-88, 95-96, 98-102
plugins/crunch/filter_latest_tpl_name.py        35       0  100.00%
plugins/crunch/filter_overlap.py                66      10  84.85%   118-121, 137-163
plugins/crunch/filter_property.py               30       2  93.33%   81-84
plugins/download/__init__.py                     4       0  100.00%
plugins/download/aws.py                        402      76  81.09%   271, 305, 354-357, 387-388, 396-400, 480-483, 523-525, 529, 560-561, 567-571, 602, 667-675, 739-834, 846-851, 889, 915, 960-962, 1014
plugins/download/base.py                       290      24  91.72%   135, 165, 381-382, 426, 460, 537-541, 571, 606-607, 632-641, 700, 721, 743, 751
plugins/download/http.py                       575      74  87.13%   235, 277-280, 342-345, 348, 355-360, 391-393, 410, 425, 486, 521, 535, 549, 559-563, 579-584, 595, 614, 651-654, 675, 685, 692, 748, 857, 889, 921-930, 966, 1011-1016, 1025, 1040-1042, 1046, 1049, 1064-1065, 1075, 1150, 1202, 1244-1245, 1257, 1267, 1323-1324, 1354, 1392, 1472-1473
plugins/search/__init__.py                      25       0  100.00%
plugins/search/base.py                         249      17  93.17%   111, 115, 139-145, 154, 216-219, 251, 358, 379, 505, 558
plugins/search/build_search_result.py          522      90  82.76%   137-138, 174, 178, 198, 257, 422-433, 443-445, 512-513, 562, 574-576, 600, 602, 667, 675-679, 699, 709, 735, 780, 805, 833, 851-866, 916, 941, 944, 948, 957, 963, 1001-1022, 1063, 1090-1091, 1100-1110, 1203, 1218, 1224, 1243-1252, 1373-1374, 1418, 1427-1429, 1489, 1537-1547
plugins/search/cop_ghsl.py                     407      85  79.12%   73-74, 109-110, 174, 176, 218, 249-252, 298, 314, 317, 353, 357-362, 377, 399, 420, 454, 470, 505, 520, 534-535, 549-551, 558, 562-564, 567-570, 588-648, 659-674
plugins/search/cop_marine.py                   294      65  77.89%   55, 63-65, 81, 103, 105, 108, 174-175, 193, 226, 232, 236, 258-259, 272, 304-307, 313, 323, 336, 344, 350-354, 360-363, 369-422, 438-441, 491, 503, 547-548
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/eumetsat_ds.py                   25       0  100.00%
plugins/search/geodes.py                        73       0  100.00%
plugins/search/qssearch.py                     855      97  88.65%   382, 542-543, 566-567, 579-583, 814-820, 878, 944, 974, 981, 1052, 1073, 1076-1077, 1095, 1104-1105, 1132, 1204, 1213, 1218-1235, 1244, 1259, 1268, 1281, 1303, 1383, 1406, 1421, 1494-1495, 1497-1499, 1501-1502, 1589, 1596, 1704-1708, 1779, 1782, 1786-1787, 1808-1811, 1823, 1845-1857, 1865, 1900-1902, 1925-1931, 1938, 1976, 1992, 2015, 2020-2021, 2036, 2042, 2056, 2157, 2161, 2172, 2196, 2209, 2217-2227
plugins/search/stac_list_assets.py              25      10  60.00%   44-51, 75-85
plugins/search/static_stac_search.py            84      17  79.76%   99-127, 166-169, 182
resources/__init__.py                            0       0  100.00%
resources/shp/__init__.py                        0       0  100.00%
types/__init__.py                              180      43  76.11%   58, 71-75, 86-98, 126-128, 135-140, 155, 165, 247, 285, 295-311, 316, 318, 340, 345, 353, 363
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                            113       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/stac_extensions.py                       158       4  97.47%   455-461, 640
types/stac_metadata.py                         159      22  86.16%   98, 120, 153, 186-188, 202-216, 225-232, 259-262
utils/__init__.py                              636      47  92.61%   60, 199, 230-231, 240-266, 269, 284, 364-368, 443-447, 527, 567-568, 597, 975-978, 1029, 1048-1049, 1078, 1096-1097, 1254, 1256, 1264, 1268, 1274, 1276, 1278, 1284, 1286, 1384, 1548, 1788
utils/cache.py                                  22       0  100.00%
utils/dates.py                                 191       1  99.48%   182
utils/deserialize.py                            73      10  86.30%   53, 55, 103, 108-109, 145, 159, 181-182, 188
utils/env.py                                     3       0  100.00%
utils/exceptions.py                             58       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                                31       1  96.77%   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                                    257      12  95.33%   200-203, 245, 263, 489, 540-541, 609, 684, 710
utils/stac_reader.py                           113      44  61.06%   63-85, 95-97, 101, 138, 154-159, 206-216, 226-256
utils/streamresponse.py                         82       7  91.46%   24-26, 63, 124, 133, 145
TOTAL                                        11430    1368  88.03%

Diff against develop

Filename                                 Stmts    Miss  Cover
-------------------------------------  -------  ------  --------
api/product/_assets.py                     +76      +1  +3.35%
api/product/_product.py                     +3       0  +0.08%
api/product/metadata_mapping.py            +23     +15  -1.49%
plugins/apis/usgs.py                        +4      +2  -0.79%
plugins/search/base.py                     +50      -2  +2.72%
plugins/search/build_search_result.py       +3      +1  -0.09%
plugins/search/cop_marine.py                -3       0  -0.22%
plugins/search/geodes.py                    +9       0  +100.00%
plugins/search/qssearch.py                 -14      -2  +0.04%
utils/__init__.py                            0      -1  +0.16%
utils/s3.py                                 +3       0  +0.05%
TOTAL                                     +154     +14  +0.04%

Results for commit: 3a4e945

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

badge

Code Coverage (Windows)

Details
Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         252      11  95.63%   105-116, 378, 645
config.py                                      306      24  92.16%   70-72, 75, 78, 81, 85, 89, 93-95, 587-589, 711-713, 732, 740, 770-775, 777
crunch.py                                        2       0  100.00%
api/__init__.py                                  0       0  100.00%
api/collection.py                              151       8  94.70%   177, 213, 216, 323, 362, 365, 383, 386
api/core.py                                    774      57  92.64%   263, 549, 597, 640, 680, 700, 741-746, 771, 855-874, 888, 894, 1047, 1052, 1151, 1190-1191, 1287-1288, 1314, 1345-1346, 1372, 1385, 1446-1447, 1478-1479, 1553-1558, 1570-1573, 1685, 1910, 2067, 2178, 2266-2267
api/provider.py                                382      40  89.53%   186, 190-191, 316-337, 405, 521, 525-526, 531-534, 545, 621-631, 821-822, 870, 877, 891, 914-917, 951-958, 962-963
api/search_result.py                           138      12  91.30%   111, 123, 133, 154, 208, 266, 278, 413, 468-471
api/product/__init__.py                          7       0  100.00%
api/product/_assets.py                         132       5  96.21%   75, 202, 340, 351-355
api/product/_product.py                        314      24  92.36%   200, 356, 382-385, 422, 441-442, 551, 580, 587, 626, 743, 787-790, 798-801, 859, 925, 937, 1004
api/product/metadata_mapping.py                890      78  91.24%   126-128, 225-230, 254, 313-314, 352-353, 394, 415, 478-479, 516, 537-540, 563, 575-576, 617, 640, 665-668, 670-675, 740-745, 754, 760, 776, 784, 815, 820-833, 1037, 1190, 1212, 1221-1225, 1243-1247, 1380, 1403, 1412, 1434, 1439, 1491, 1563, 1580, 1592, 1618, 1632, 1657, 1703, 1754-1755, 1772, 1847, 1882
api/product/drivers/__init__.py                 11       0  100.00%
api/product/drivers/base.py                     32       0  100.00%
api/product/drivers/generic.py                  11       0  100.00%
api/product/drivers/sentinel1.py                33       0  100.00%
api/product/drivers/sentinel2.py                33       0  100.00%
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 25       2  92.00%   48, 55
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                           95       8  91.58%   163-165, 213-214, 240-242
plugins/apis/usgs.py                           179      27  84.92%   138-139, 160, 248, 281, 323-325, 330, 358-359, 364, 394-401, 412-417, 439-445
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/eoiam.py                 98       1  98.98%   170
plugins/authentication/generic.py               16       3  81.25%   50, 55, 65
plugins/authentication/header.py                19       0  100.00%
plugins/authentication/keycloak.py              46       4  91.30%   154, 177-182
plugins/authentication/openid_connect.py       235      19  91.91%   98-99, 107-125, 172, 180, 194, 214, 353-356, 382, 423
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                141       9  93.62%   192, 229, 309-310, 358-362
plugins/authentication/token_exchange.py        36      14  61.11%   75, 93-121
plugins/crunch/__init__.py                       6       0  100.00%
plugins/crunch/base.py                          12       0  100.00%
plugins/crunch/filter_date.py                   47       0  100.00%
plugins/crunch/filter_latest_intersect.py       52       6  88.46%   87-88, 95-96, 98-102
plugins/crunch/filter_latest_tpl_name.py        35       0  100.00%
plugins/crunch/filter_overlap.py                66      10  84.85%   118-121, 137-163
plugins/crunch/filter_property.py               30       2  93.33%   81-84
plugins/download/__init__.py                     4       0  100.00%
plugins/download/aws.py                        402      76  81.09%   271, 305, 354-357, 387-388, 396-400, 480-483, 523-525, 529, 560-561, 567-571, 602, 667-675, 739-834, 846-851, 889, 915, 960-962, 1014
plugins/download/base.py                       290      26  91.03%   135, 165, 240-242, 381-382, 426, 460, 537-541, 571, 606-607, 632-641, 700, 721, 743, 751
plugins/download/http.py                       575      74  87.13%   235, 277-280, 342-345, 348, 355-360, 391-393, 410, 425, 486, 521, 535, 549, 559-563, 579-584, 595, 614, 651-654, 675, 685, 692, 748, 857, 889, 921-930, 966, 1011-1016, 1025, 1040-1042, 1046, 1049, 1064-1065, 1075, 1150, 1202, 1244-1245, 1257, 1267, 1323-1324, 1354, 1392, 1472-1473
plugins/search/__init__.py                      25       0  100.00%
plugins/search/base.py                         249      17  93.17%   111, 115, 139-145, 154, 216-219, 251, 358, 379, 505, 558
plugins/search/build_search_result.py          522      90  82.76%   137-138, 174, 178, 198, 257, 422-433, 443-445, 512-513, 562, 574-576, 600, 602, 667, 675-679, 699, 709, 735, 780, 805, 833, 851-866, 916, 941, 944, 948, 957, 963, 1001-1022, 1063, 1090-1091, 1100-1110, 1203, 1218, 1224, 1243-1252, 1373-1374, 1418, 1427-1429, 1489, 1537-1547
plugins/search/cop_ghsl.py                     407      85  79.12%   73-74, 109-110, 174, 176, 218, 249-252, 298, 314, 317, 353, 357-362, 377, 399, 420, 454, 470, 505, 520, 534-535, 549-551, 558, 562-564, 567-570, 588-648, 659-674
plugins/search/cop_marine.py                   294      65  77.89%   55, 63-65, 81, 103, 105, 108, 174-175, 193, 226, 232, 236, 258-259, 272, 304-307, 313, 323, 336, 344, 350-354, 360-363, 369-422, 438-441, 491, 503, 547-548
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/eumetsat_ds.py                   25       0  100.00%
plugins/search/geodes.py                        73       0  100.00%
plugins/search/qssearch.py                     855      97  88.65%   382, 542-543, 566-567, 579-583, 814-820, 878, 944, 974, 981, 1052, 1073, 1076-1077, 1095, 1104-1105, 1132, 1204, 1213, 1218-1235, 1244, 1259, 1268, 1281, 1303, 1383, 1406, 1421, 1494-1495, 1497-1499, 1501-1502, 1589, 1596, 1704-1708, 1779, 1782, 1786-1787, 1808-1811, 1823, 1845-1857, 1865, 1900-1902, 1925-1931, 1938, 1976, 1992, 2015, 2020-2021, 2036, 2042, 2056, 2157, 2161, 2172, 2196, 2209, 2217-2227
plugins/search/stac_list_assets.py              25      10  60.00%   44-51, 75-85
plugins/search/static_stac_search.py            84      17  79.76%   99-127, 166-169, 182
resources/__init__.py                            0       0  100.00%
resources/shp/__init__.py                        0       0  100.00%
types/__init__.py                              180      43  76.11%   58, 71-75, 86-98, 126-128, 135-140, 155, 165, 247, 285, 295-311, 316, 318, 340, 345, 353, 363
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                            113       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/stac_extensions.py                       158       4  97.47%   455-461, 640
types/stac_metadata.py                         159      22  86.16%   98, 120, 153, 186-188, 202-216, 225-232, 259-262
utils/__init__.py                              636      47  92.61%   60, 199, 230-231, 240-266, 269, 284, 364-368, 443-447, 527, 567-568, 597, 975-978, 1029, 1048-1049, 1078, 1096-1097, 1254, 1256, 1264, 1268, 1274, 1276, 1278, 1284, 1286, 1384, 1548, 1788
utils/cache.py                                  22       0  100.00%
utils/dates.py                                 191       1  99.48%   182
utils/deserialize.py                            73      10  86.30%   53, 55, 103, 108-109, 145, 159, 181-182, 188
utils/env.py                                     3       0  100.00%
utils/exceptions.py                             58       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                                31       1  96.77%   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                                    257      12  95.33%   200-203, 245, 263, 489, 540-541, 609, 684, 710
utils/stac_reader.py                           113      44  61.06%   63-85, 95-97, 101, 138, 154-159, 206-216, 226-256
utils/streamresponse.py                         82       7  91.46%   24-26, 63, 124, 133, 145
TOTAL                                        11430    1370  88.01%

Diff against develop

Filename                                 Stmts    Miss  Cover
-------------------------------------  -------  ------  --------
api/product/_assets.py                     +76      +1  +3.35%
api/product/_product.py                     +3       0  +0.08%
api/product/metadata_mapping.py            +23     +15  -1.49%
plugins/apis/usgs.py                        +4      +2  -0.79%
plugins/search/base.py                     +50      -2  +2.72%
plugins/search/build_search_result.py       +3      +1  -0.09%
plugins/search/cop_marine.py                -3       0  -0.22%
plugins/search/geodes.py                    +9       0  +100.00%
plugins/search/qssearch.py                 -14      -2  +0.04%
utils/__init__.py                            0      -1  +0.16%
utils/s3.py                                 +3       0  +0.05%
TOTAL                                     +154     +14  +0.04%

Results for commit: 3a4e945

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

@sbrunato
sbrunato merged commit 4bb3817 into v5_download_link_asset Jun 2, 2026
12 checks passed
@sbrunato
sbrunato deleted the get-quicklook-asset branch June 2, 2026 14:53
@sbrunato sbrunato added this to the 5.0.0.dev milestone Jun 2, 2026
sbrunato added a commit that referenced this pull request Jun 2, 2026
sbrunato added a commit that referenced this pull request Jun 4, 2026
sbrunato added a commit that referenced this pull request Jun 18, 2026
sbrunato added a commit that referenced this pull request Jun 24, 2026
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.

1 participant