Skip to content

feat(plugins): new search plugin for geodes#1861

Open
timothey-cs wants to merge 4 commits intodevelopfrom
1777-geodes-availability
Open

feat(plugins): new search plugin for geodes#1861
timothey-cs wants to merge 4 commits intodevelopfrom
1777-geodes-availability

Conversation

@timothey-cs
Copy link
Copy Markdown
Collaborator

Fixes #1777

For provider geodes, perform a second request to get product availability and put the result in the properties.storageStatus. New plugin created : GeodesSearch

@timothey-cs timothey-cs self-assigned this Sep 30, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Sep 30, 2025

Test Results

  1 files   -     3    1 suites   - 3   30s ⏱️ - 3m 1s
736 tests ±    0  674 ✅  -    62  0 💤 ±0  62 ❌ +62 
757 runs   - 2 229  695 ✅  - 2 289  0 💤  - 2  62 ❌ +62 

For more details on these failures, see this check.

Results for commit ba30b90. ± Comparison against base commit 379db43.

♻️ This comment has been updated with latest results.

@eodag-bot
Copy link
Copy Markdown
Collaborator

eodag-bot commented Sep 30, 2025

badge

Code Coverage (Ubuntu)

Details
Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         334      68  79.64%   64-65, 89, 129-131, 721-785, 887-938, 942
config.py                                      453      30  93.38%   81-83, 92, 100, 104-106, 177, 188, 205-206, 732-734, 858-861, 905-906, 915-916, 950, 1030, 1089-1094, 1096
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/core.py                                    788      47  94.04%   337, 604, 635, 679-682, 720, 764, 798, 843-848, 874, 960, 1300, 1342, 1376-1387, 1491-1494, 1531-1551, 1620-1625, 1637-1640, 2222, 2285-2286, 2315-2316
api/search_result.py                           126      12  90.48%   87, 96, 103, 117, 282, 287-288, 322, 336, 359-360, 366
api/product/__init__.py                         18       1  94.44%   62
api/product/_assets.py                          52       5  90.38%   97, 183, 191, 194-198
api/product/_product.py                        213      19  91.08%   72-74, 238-239, 345, 372, 473, 491, 515-518, 527-530, 585-588
api/product/metadata_mapping.py                776      44  94.33%   123-125, 255-256, 363, 415-416, 453, 474-477, 500, 512-513, 550, 616-621, 633, 641, 745-746, 954, 1107, 1116-1120, 1137-1142, 1269, 1292, 1301, 1323, 1328, 1452, 1494, 1508, 1533, 1579, 1648, 1720
api/product/drivers/__init__.py                 20       2  90.00%   33-36
api/product/drivers/base.py                     29       1  96.55%   98
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       2  90.91%   48, 55
plugins/manager.py                             173      19  89.02%   106-111, 146-151, 155, 193, 215, 219, 243, 282-283, 383-386, 398-399
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                           97      10  89.69%   167-169, 216-217, 243-245, 298-299
plugins/apis/usgs.py                           180      26  85.56%   157, 259, 293, 328-330, 335, 361-362, 367, 397-404, 415-420, 442-448, 479
plugins/authentication/__init__.py               6       1  83.33%   31
plugins/authentication/aws_auth.py             112      32  71.43%   50-52, 67-68, 140-147, 175-201, 224, 256-260, 277
plugins/authentication/base.py                  19       3  84.21%   46, 59, 82
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/oauth.py                 15       7  53.33%   48-50, 54-57
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              53       3  94.34%   67, 88, 134
plugins/authentication/token.py                128       9  92.97%   180, 217, 289-290, 340-344
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       8  82.98%   52-53, 69, 78-81, 83, 90-93
plugins/crunch/filter_latest_tpl_name.py        31       1  96.77%   83
plugins/crunch/filter_overlap.py                66      18  72.73%   28-30, 66-69, 76-79, 85, 93, 104-120
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                        378      70  81.48%   267, 303, 341-344, 364-368, 463-465, 469, 502-503, 509-513, 544, 609-617, 681-778, 789-794, 832, 858, 903-905, 1125
plugins/download/base.py                       260      35  86.54%   130, 159, 306-307, 365-366, 408, 412-423, 437, 505-509, 539-540, 565-573, 575-579, 629, 650, 672, 680
plugins/download/creodias_s3.py                 10       0  100.00%
plugins/download/http.py                       545      77  85.87%   238, 280-283, 345-348, 351, 358-363, 394-396, 413, 428, 482, 517, 531, 545, 553-557, 573-578, 589, 607, 643-646, 667, 677, 684, 704, 839, 871, 901-910, 946, 971-972, 991-996, 1005, 1020-1022, 1026, 1029, 1044-1045, 1123-1124, 1128, 1180, 1226-1227, 1233, 1243, 1271, 1306, 1326, 1363-1365
plugins/download/s3rest.py                     122      26  78.69%   125, 159, 166, 201, 228-235, 238-240, 244, 255-261, 269-270, 273-277, 292-295, 304, 325-328
plugins/search/__init__.py                      22       0  100.00%
plugins/search/base.py                         170      14  91.76%   104, 108, 132-138, 275, 296, 435, 457-460, 469
plugins/search/build_search_result.py          480      56  88.33%   246-247, 283, 286, 311, 314, 345-347, 559, 561, 565, 568, 695, 697, 758, 765, 789, 826, 877, 927-942, 990, 1015, 1018, 1022, 1143-1144, 1153-1162, 1225, 1246, 1265-1274, 1391-1392, 1437, 1446-1448, 1508, 1554
plugins/search/cop_marine.py                   254      47  81.50%   56, 64-66, 76-77, 82, 87-88, 104, 106, 109, 175-176, 232, 238, 242, 246, 259, 270-271, 279, 312, 316, 337, 341, 345, 349, 353-357, 363-366, 369-383, 400, 449-453, 458, 470
plugins/search/creodias_s3.py                   29       1  96.55%   59
plugins/search/csw.py                          105      81  22.86%   98-99, 103-104, 112-160, 166-179, 187-219, 237-278
plugins/search/data_request_search.py          208      26  87.50%   195-198, 214, 225, 229-230, 241, 246, 251, 258, 271-274, 328-329, 333, 343-349, 354, 501, 511, 522, 535, 561
plugins/search/qssearch.py                     760      94  87.63%   416-417, 558-559, 571-575, 632-648, 765-768, 839-840, 891, 910, 917, 929, 986, 1007, 1010-1011, 1020-1021, 1030-1031, 1040-1041, 1068, 1208, 1231, 1304-1305, 1311, 1401, 1566, 1569, 1575-1576, 1597, 1625-1637, 1644, 1676-1678, 1688-1694, 1724, 1747, 1752-1753, 1768, 1784, 1871, 1878, 1889, 1912-1917, 1926, 1935, 2020-2063, 2072
plugins/search/stac_list_assets.py              25      10  60.00%   44-51, 75-85
plugins/search/static_stac_search.py            79      13  83.54%   100-126, 170, 183
rest/__init__.py                                 4       2  50.00%   21-22
rest/cache.py                                   33       7  78.79%   35-37, 53-55, 59, 68
rest/config.py                                  25       0  100.00%
rest/constants.py                                6       0  100.00%
rest/core.py                                   261      60  77.01%   265, 304, 319-355, 451, 488-527, 604, 634-637, 710, 717-764
rest/errors.py                                  74       5  93.24%   126, 136, 147, 172-173
rest/server.py                                 196      24  87.76%   94, 117-119, 293-298, 326, 526-528, 545-550, 579, 581, 585-586, 590-591
rest/stac.py                                   333      71  78.68%   320, 342, 394-397, 424-451, 482-484, 507, 539-540, 622-662, 684-700, 792-796, 854-855, 865-870, 880-884, 933, 1023-1025
rest/types/__init__.py                           0       0  100.00%
rest/types/collections_search.py                13      13  0.00%    18-44
rest/types/eodag_search.py                     180       6  96.67%   225-229, 282, 285, 353, 375
rest/types/queryables.py                        64      12  81.25%   61, 71-79, 105-110, 174
rest/types/stac_search.py                      125       7  94.40%   128, 174, 189-191, 199, 203
rest/utils/__init__.py                          94      12  87.23%   101-102, 121-123, 175, 185-199
rest/utils/cql_evaluate.py                      48       5  89.58%   69, 76, 90, 97, 105
rest/utils/rfc3339.py                           23       3  86.96%   48, 60, 62
types/__init__.py                              161      40  75.16%   67, 80-84, 95-107, 135-137, 144-149, 252, 262-278, 283, 285, 307, 312, 320, 330
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                            111       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
utils/__init__.py                              564      40  92.91%   69, 193-194, 203-229, 232, 247, 327-331, 406-410, 489, 504, 544-545, 574, 949-952, 960-961, 999-1000, 1047-1048, 1188, 1441, 1456, 1465, 1477
utils/cache.py                                  22       0  100.00%
utils/dates.py                                  57       4  92.98%   63-65, 138
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       8  78.95%   51, 53, 57, 98, 122-129
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                                        10918    1482  86.43%

Diff against develop

Filename                      Stmts    Miss  Cover
--------------------------  -------  ------  -------
plugins/search/qssearch.py      +35     +25  -2.85%
TOTAL                           +35     +25  -0.18%

Results for commit: 26c6c6a

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

@eodag-bot
Copy link
Copy Markdown
Collaborator

eodag-bot commented Sep 30, 2025

badge

Code Coverage (Windows)

Details
Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         334      68  79.64%   64-65, 89, 129-131, 721-785, 887-938, 942
config.py                                      453      31  93.16%   81-83, 92, 100, 104-106, 177, 188, 205-206, 732-734, 858-861, 905-906, 915-916, 950, 1030, 1059, 1089-1094, 1096
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/core.py                                    788      47  94.04%   337, 604, 635, 679-682, 720, 764, 798, 843-848, 874, 960, 1300, 1342, 1376-1387, 1491-1494, 1531-1551, 1620-1625, 1637-1640, 2222, 2285-2286, 2315-2316
api/search_result.py                           126      12  90.48%   87, 96, 103, 117, 282, 287-288, 322, 336, 359-360, 366
api/product/__init__.py                         18       1  94.44%   62
api/product/_assets.py                          52       5  90.38%   97, 183, 191, 194-198
api/product/_product.py                        213      19  91.08%   72-74, 238-239, 345, 372, 473, 491, 515-518, 527-530, 585-588
api/product/metadata_mapping.py                776      44  94.33%   123-125, 255-256, 363, 415-416, 453, 474-477, 500, 512-513, 550, 616-621, 633, 641, 745-746, 954, 1107, 1116-1120, 1137-1142, 1269, 1292, 1301, 1323, 1328, 1452, 1494, 1508, 1533, 1579, 1648, 1720
api/product/drivers/__init__.py                 20       2  90.00%   33-36
api/product/drivers/base.py                     29       1  96.55%   98
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      19  89.02%   106-111, 146-151, 155, 193, 215, 219, 243, 282-283, 383-386, 398-399
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                           97      10  89.69%   167-169, 216-217, 243-245, 298-299
plugins/apis/usgs.py                           180      26  85.56%   157, 259, 293, 328-330, 335, 361-362, 367, 397-404, 415-420, 442-448, 479
plugins/authentication/__init__.py               6       1  83.33%   31
plugins/authentication/aws_auth.py             112      32  71.43%   50-52, 67-68, 140-147, 175-201, 224, 256-260, 277
plugins/authentication/base.py                  19       3  84.21%   46, 59, 82
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/oauth.py                 15       7  53.33%   48-50, 54-57
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              53       3  94.34%   67, 88, 134
plugins/authentication/token.py                128       9  92.97%   180, 217, 289-290, 340-344
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-112
plugins/crunch/filter_latest_tpl_name.py        31       1  96.77%   83
plugins/crunch/filter_overlap.py                66      18  72.73%   28-30, 66-69, 76-79, 85, 93, 104-120
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                        378      70  81.48%   267, 303, 341-344, 364-368, 463-465, 469, 502-503, 509-513, 544, 609-617, 681-778, 789-794, 832, 858, 903-905, 1125
plugins/download/base.py                       260      37  85.77%   130, 159, 226-228, 306-307, 365-366, 408, 412-423, 437, 505-509, 539-540, 565-573, 575-579, 629, 650, 672, 680
plugins/download/creodias_s3.py                 10       0  100.00%
plugins/download/http.py                       545      77  85.87%   238, 280-283, 345-348, 351, 358-363, 394-396, 413, 428, 482, 517, 531, 545, 553-557, 573-578, 589, 607, 643-646, 667, 677, 684, 704, 839, 871, 901-910, 946, 971-972, 991-996, 1005, 1020-1022, 1026, 1029, 1044-1045, 1123-1124, 1128, 1180, 1226-1227, 1233, 1243, 1271, 1306, 1326, 1363-1365
plugins/download/s3rest.py                     122      26  78.69%   125, 159, 166, 201, 228-235, 238-240, 244, 255-261, 269-270, 273-277, 292-295, 304, 325-328
plugins/search/__init__.py                      22       0  100.00%
plugins/search/base.py                         170      14  91.76%   104, 108, 132-138, 275, 296, 435, 457-460, 469
plugins/search/build_search_result.py          480      63  86.88%   246-247, 283, 286, 311, 314, 345-347, 557-568, 695, 697, 758, 765, 789, 826, 877, 893, 927-942, 990, 1015, 1018, 1022, 1143-1144, 1153-1162, 1225, 1240, 1246, 1265-1274, 1391-1392, 1437, 1446-1448, 1508, 1554
plugins/search/cop_marine.py                   254      47  81.50%   56, 64-66, 76-77, 82, 87-88, 104, 106, 109, 175-176, 232, 238, 242, 246, 259, 270-271, 279, 312, 316, 337, 341, 345, 349, 353-357, 363-366, 369-383, 400, 449-453, 458, 470
plugins/search/creodias_s3.py                   29       1  96.55%   59
plugins/search/csw.py                          105      81  22.86%   98-99, 103-104, 112-160, 166-179, 187-219, 237-278
plugins/search/data_request_search.py          208      26  87.50%   195-198, 214, 225, 229-230, 241, 246, 251, 258, 271-274, 328-329, 333, 343-349, 354, 501, 511, 522, 535, 561
plugins/search/qssearch.py                     760     106  86.05%   416-417, 558-559, 571-575, 632-648, 765-768, 839-840, 891, 910, 917, 929, 986, 1007, 1010-1011, 1020-1021, 1030-1031, 1040-1041, 1068, 1208, 1231, 1304-1305, 1311, 1401, 1498-1502, 1566, 1569, 1575-1576, 1597, 1625-1637, 1644, 1676-1678, 1688-1694, 1724, 1747, 1752-1753, 1768, 1784, 1859, 1871, 1878, 1889, 1912-1917, 1926, 1934-1944, 1962, 1978-1982, 2020-2063, 2072
plugins/search/stac_list_assets.py              25      10  60.00%   44-51, 75-85
plugins/search/static_stac_search.py            79      13  83.54%   100-126, 170, 183
rest/__init__.py                                 4       2  50.00%   21-22
rest/cache.py                                   33      22  33.33%   35-37, 44-70
rest/config.py                                  25       1  96.00%   35
rest/constants.py                                6       0  100.00%
rest/core.py                                   261     151  42.15%   164, 166, 168, 171-172, 186-196, 205-206, 212, 215, 256-306, 319-355, 387-425, 440-456, 472-481, 488-527, 544, 586-671, 710, 717-764
rest/errors.py                                  74      51  31.08%   72, 77-120, 125-128, 135-138, 146-176, 184-189, 204-210
rest/server.py                                 196     196  0.00%    18-604
rest/stac.py                                   333      76  77.18%   254, 320, 342, 394-397, 424-451, 482-484, 507, 539-540, 622-662, 684-700, 727, 792-796, 854-855, 861, 865-870, 880-884, 933, 971, 1004, 1023-1025
rest/types/__init__.py                           0       0  100.00%
rest/types/collections_search.py                13      13  0.00%    18-44
rest/types/eodag_search.py                     180      20  88.89%   225-229, 262-264, 282, 285, 291, 295, 353, 371-386
rest/types/queryables.py                        64      20  68.75%   54-55, 60-63, 68-79, 105-110, 119-120, 174
rest/types/stac_search.py                      125      11  91.20%   126-128, 174, 189-191, 199, 203, 251, 254
rest/utils/__init__.py                          94      30  68.09%   72-78, 98, 101-102, 121-123, 136, 143, 168-176, 183-204
rest/utils/cql_evaluate.py                      48       5  89.58%   69, 76, 90, 97, 105
rest/utils/rfc3339.py                           23       5  78.26%   43-44, 48, 60, 62
types/__init__.py                              161      41  74.53%   67, 80-84, 95-107, 135-137, 144-149, 214, 252, 262-278, 283, 285, 307, 312, 320, 330
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                            111       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
utils/__init__.py                              564      40  92.91%   69, 193-194, 203-229, 232, 247, 327-331, 406-410, 489, 504, 544-545, 574, 949-952, 960-961, 999-1000, 1047-1048, 1188, 1441, 1456, 1465, 1477
utils/cache.py                                  22       0  100.00%
utils/dates.py                                  57       4  92.98%   63-65, 138
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       8  78.95%   51, 53, 57, 98, 122-129
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                                        10918    1908  82.52%

Diff against develop

Filename                      Stmts    Miss  Cover
--------------------------  -------  ------  -------
plugins/search/qssearch.py      +35     +25  -2.78%
TOTAL                           +35     +25  -0.18%

Results for commit: 26c6c6a

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

availability_endpoint = "https://geodes-portal.cnes.fr/availability/{id}"
if availability_endpoint:
ssl_verify = getattr(self.config, "ssl_verify", True)
for result in results:
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please call availability endpoint only once with all ids, this will be way faster

@sbrunato sbrunato marked this pull request as draft October 6, 2025 07:17
@timothey-cs timothey-cs force-pushed the 1777-geodes-availability branch from 1a2420f to 26c6c6a Compare October 8, 2025 12:11
@timothey-cs timothey-cs marked this pull request as ready for review October 8, 2025 12:11
@timothey-cs timothey-cs requested a review from sbrunato October 8, 2025 12:11
@timothey-cs timothey-cs force-pushed the 1777-geodes-availability branch from 26c6c6a to ba30b90 Compare April 8, 2026 15:02
@eodag-bot
Copy link
Copy Markdown
Collaborator

badge

Code Coverage (Ubuntu)

Details
Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         251      11  95.62%   104-115, 377, 644
config.py                                      307      24  92.18%   70-72, 75, 78, 81, 85, 89, 93-95, 590-592, 714-716, 735, 743, 773-778, 780
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                                    778      77  90.10%   266, 552, 600, 643, 683, 703, 744-749, 774, 858-877, 891, 958-965, 1050, 1055, 1154, 1193-1194, 1218, 1233, 1290-1291, 1317, 1348-1349, 1375, 1378, 1388, 1449-1450, 1467, 1481-1482, 1556-1561, 1573-1576, 1684, 1688, 1691-1693, 1698, 1706, 1710, 1764, 1767, 1921, 2078, 2189, 2277-2278, 2348
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                          54       4  92.59%   97, 191, 202-206
api/product/_product.py                        304      25  91.78%   200, 344, 370-373, 410, 421-422, 531, 560, 567, 606, 718, 761-764, 773-776, 830, 896, 908, 975, 988
api/product/metadata_mapping.py                804      60  92.54%   125-127, 221-226, 250, 308-309, 397, 418, 470-471, 508, 529-532, 555, 567-568, 609, 632, 657-660, 662-667, 732-737, 746, 752, 768, 776, 1008, 1161, 1183, 1192-1196, 1213-1218, 1351, 1374, 1383, 1405, 1410, 1462, 1534, 1555, 1581, 1595, 1620, 1666, 1717-1718, 1735, 1810
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      20  88.44%   102-107, 179, 201, 219-220, 227-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      42  58.42%   178-180, 195-272, 276
plugins/apis/usgs.py                           182      30  83.52%   153, 157, 263, 283-288, 297, 339-341, 346, 374-375, 380, 410-417, 428-433, 455-461
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                 99       2  97.98%   171, 194
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      20  44.44%   72-78, 91-121
plugins/crunch/__init__.py                       6       0  100.00%
plugins/crunch/base.py                          12       0  100.00%
plugins/crunch/filter_date.py                   59       0  100.00%
plugins/crunch/filter_latest_intersect.py       54       6  88.89%   92-93, 100-101, 103-107
plugins/crunch/filter_latest_tpl_name.py        35       0  100.00%
plugins/crunch/filter_overlap.py                66      12  81.82%   118-121, 124-125, 137-163
plugins/crunch/filter_property.py               30       0  100.00%
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                       288      24  91.67%   135, 165, 371-372, 416, 450, 527-531, 561, 596-597, 622-631, 690, 711, 733, 741
plugins/download/http.py                       574      75  86.93%   233, 275-278, 340-343, 346, 353-358, 389-391, 408, 423, 483, 518, 532, 546, 556-560, 576-581, 592, 611, 648-651, 672, 682, 689, 745, 854, 886, 916-925, 961, 1006-1011, 1020, 1035-1037, 1041, 1044, 1059-1060, 1070, 1145, 1197, 1239-1240, 1252, 1262, 1318-1319, 1349, 1369, 1397, 1477-1478
plugins/search/__init__.py                      25       0  100.00%
plugins/search/base.py                         196      33  83.16%   109, 113, 137-143, 152, 200-203, 296, 317, 438, 442, 492, 521-540
plugins/search/build_search_result.py          505      84  83.37%   259-260, 296, 300, 320, 550-561, 576-578, 701, 725, 727, 794, 802-806, 827, 837, 863, 908, 933, 961, 979-994, 1044, 1069, 1072, 1076, 1085, 1091, 1129-1150, 1191, 1218-1219, 1228-1237, 1301, 1313, 1316, 1322, 1341-1350, 1471-1472, 1516, 1525-1527, 1584, 1632-1642
plugins/search/cop_marine.py                   273      59  78.39%   57, 65-67, 77-78, 83, 88-89, 105, 107, 110, 176-177, 220, 238, 244, 248, 252, 263, 274-275, 283, 315-318, 324, 334, 347, 351, 355, 359, 363-367, 373-376, 379-396, 413-416, 469-473, 478, 490, 504-505
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                     871     138  84.16%   380, 425-426, 543-544, 563-564, 567-568, 580-584, 815-821, 879, 945, 975, 982, 1053, 1074, 1077-1078, 1096, 1105-1106, 1133, 1205, 1214, 1219-1236, 1245, 1260, 1269-1272, 1282, 1304, 1400, 1423, 1495-1510, 1593, 1700-1704, 1770, 1773, 1777-1778, 1799-1802, 1814, 1836-1848, 1856, 1891-1893, 1916-1922, 1929, 1967, 1983, 2006, 2011-2012, 2027, 2033, 2043, 2133, 2137, 2148, 2171-2176, 2185, 2193-2203, 2241-2245, 2280-2326, 2332-2338
plugins/search/stac_list_assets.py              25      11  56.00%   44-51, 68, 75-85
plugins/search/static_stac_search.py            84      24  71.43%   99-127, 166-169, 182, 208, 210, 212, 219, 224, 240-241
resources/__init__.py                            0       0  100.00%
resources/shp/__init__.py                        0       0  100.00%
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                            112       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/stac_extensions.py                       114       1  99.12%   282
types/stac_metadata.py                         120      16  86.67%   95, 116-117, 150, 180-194, 203-210
utils/__init__.py                              572      39  93.18%   60, 197, 228-229, 238-264, 267, 282, 362-366, 441-445, 525, 565-566, 595, 973-976, 1027, 1046-1047, 1076, 1094-1095, 1207, 1295, 1459, 1697
utils/cache.py                                  22       0  100.00%
utils/dates.py                                 113       4  96.46%   171, 329-331
utils/deserialize.py                            73      18  75.34%   53, 55, 103, 108-109, 145, 159, 164, 176-188
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                                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                                    240      13  94.58%   200-203, 245, 258, 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
utils/streamresponse.py                         82       7  91.46%   24-26, 63, 124, 133, 145
TOTAL                                        10434    1382  86.75%

Diff against develop

Filename                                    Stmts    Miss  Cover
----------------------------------------  -------  ------  -------
api/core.py                                     0     +20  -2.57%
api/product/_product.py                         0      +1  -0.33%
api/product/metadata_mapping.py                 0      +2  -0.25%
plugins/manager.py                              0      +4  -2.31%
plugins/apis/ecmwf.py                           0     +34  -33.66%
plugins/apis/usgs.py                            0      +5  -2.74%
plugins/authentication/token_exchange.py        0      +6  -16.67%
plugins/crunch/filter_overlap.py                0      +2  -3.03%
plugins/search/base.py                          0     +15  -7.66%
plugins/search/build_search_result.py           0      +1  -0.19%
plugins/search/qssearch.py                    +35     +43  -4.48%
plugins/search/stac_list_assets.py              0      +1  -4.00%
plugins/search/static_stac_search.py            0      +6  -7.14%
utils/deserialize.py                            0      +8  -10.96%
TOTAL                                         +35    +148  -1.38%

Results for commit: ba30b90

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.

geodes storage status

3 participants