[go: up one dir, main page]

File: test_api.py

package info (click to toggle)
usgs 0.3.5-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 2,368 kB
  • sloc: python: 769; makefile: 153
file content (113 lines) | stat: -rw-r--r-- 4,112 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import pytest
import mock

from usgs import api
from .MockPost import MockPost


def check_root_keys(response):

    expected_keys = ["requestId", "version", "sessionId", "data", "errorCode", "errorMessage"]
    for key in expected_keys:
        if key not in response:
            return False

    return True

@mock.patch('usgs.api.requests.Session.post', MockPost('dataset-fields.json'))
def test_dataset_filters():

    expected_keys = ["id", "legacyFieldId", "dictionaryLink", "fieldConfig", "fieldLabel", "searchSql"]
    response = api.dataset_filters("LANDSAT_8_C1")

    assert check_root_keys(response)

    for item in response['data']:
        for key in expected_keys:
            assert key in item

@mock.patch('usgs.api.requests.Session.post', MockPost('download-options.json'))
def test_download_options():

    expected_keys = ["id", "displayId", "entityId", "datasetId", "available", "filesize", "productName", "productCode", "bulkAvailable", "downloadSystem", "secondaryDownloads"]
    response = api.download_options("LANDSAT_8_C1", ["LC82260782020217LGN00"])

    assert check_root_keys(response)

    for item in response["data"]:
        for key in expected_keys:
            assert key in item

@mock.patch('usgs.api.requests.Session.post', MockPost('dataset-download-options.json'))
def test_dataset_download_options():
    expected_keys = ['productId', 'productCode', 'productName']
    response = api.dataset_download_options("LANDSAT_8_C1")

    assert check_root_keys(response)

    for item in response["data"]:
        for key in expected_keys:
            assert key in item

@mock.patch('usgs.api.requests.Session.post', MockPost('download-request.json'))
def test_download_request():

    expected_keys = ['availableDownloads', 'duplicateProducts', 'preparingDownloads', 'failed', 'newRecords', 'numInvalidScenes']
    response = api.download_request("LANDSAT_8_C1", "LC82260782020217LGN00", "5e83d0b84df8d8c2")

    assert check_root_keys

    for key in response["data"]:
        assert key in expected_keys

@mock.patch('usgs.api.requests.Session.post', MockPost('dataset-search.json'))
def test_dataset_search():

    expected_keys = [
        'abstractText', 'acquisitionStart', 'acquisitionEnd', 'catalogs', 'collectionName',
        'collectionLongName', 'datasetId', 'datasetAlias', 'datasetCategoryName',
        'dataOwner', 'dateUpdated', 'doiNumber', 'ingestFrequency', 'keywords',
        'legacyId', 'sceneCount', 'spatialBounds', 'temporalCoverage',
        'supportCloudCover', 'supportDeletionSearch']
    response = api.dataset_search()

    assert check_root_keys(response)
    assert len(response['data']) == 1163
    for key in expected_keys:
        assert key in response['data'][0]

@mock.patch('usgs.api.requests.Session.post', MockPost('scene-metadata.json'))
def test_scene_metadata():

    expected_keys = [
        'browse', 'cloudCover', 'entityId', 'displayId', 'orderingId', 'metadata',
        'hasCustomizedMetadata', 'options', 'selected', 'spatialBounds', 'spatialCoverage',
        'temporalCoverage', 'publishDate']

    response = api.scene_metadata(
        "LANDSAT_8_C1", "LC82260782020217LGN00")
    assert check_root_keys(response)

    for key in expected_keys:
        assert key in response['data']

@mock.patch('usgs.api.requests.Session.post', MockPost('scene-search.json'))
def test_scene_search():
    expected_keys = [
        'browse', 'cloudCover', 'entityId', 'displayId', 'orderingId', 'metadata',
        'hasCustomizedMetadata', 'options', 'selected', 'spatialBounds', 'spatialCoverage',
        'temporalCoverage', 'publishDate']

    where = {
        "filter_id": "5e83d0b8fb079b8b",
        "value": "T1"
    }
    response = api.scene_search(
        "LANDSAT_8_C1", start_date='2016-09-11', end_date='2016-09-12', metadata_type="summary",
        max_results=1, lat=-33.463623929871886, lng=-70.54248332977295, where=where)

    assert check_root_keys(response)
    assert len(response['data']["results"]) == 1

    for expected_key in expected_keys:
        assert expected_key in response['data']["results"][0]