Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix failing tests #100

Open
frankinspace opened this issue Jul 31, 2024 · 0 comments
Open

Fix failing tests #100

frankinspace opened this issue Jul 31, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@frankinspace
Copy link
Collaborator

frankinspace commented Jul 31, 2024

There are a number of tests that fail and need to be refactored. Related to #97

Once fixed, remove continue-on-error: true from the Test step in the github workflow

(base) ~/githubprojects/MAAP-Project/maap-py git:[issues/95]
poetry run pytest test/
======================================================================================== test session starts ========================================================================================
platform darwin -- Python 3.12.2, pytest-8.2.2, pluggy-1.5.0
rootdir: /Users/greguska/githubprojects/MAAP-Project/maap-py
configfile: pyproject.toml
plugins: cov-5.0.0
collected 55 items                                                                                                                                                                                  

test/test_AWS.py ....                                                                                                                                                                         [  7%]
test/test_CMR.py FFFFFFFFFFF                                                                                                                                                                  [ 27%]
test/test_DPS.py ...........F.                                                                                                                                                                [ 50%]
test/test_MAAP.py FFFF.                                                                                                                                                                       [ 60%]
test/test_Result.py .............                                                                                                                                                             [ 83%]
test/test_config_reader.py ..FFFFFFF                                                                                                                                                          [100%]

============================================================================================= FAILURES ==============================================================================================
________________________________________________________________________________ TestCMR.test_direct_granuleDownload ________________________________________________________________________________

self = <test.test_CMR.TestCMR testMethod=test_direct_granuleDownload>

    def test_direct_granuleDownload(self):
>       results = self.maap.downloadGranule(
            online_access_url='https://datapool.asf.alaska.edu/GRD_HD/SA/S1A_S3_GRDH_1SDH_20140615T034444_20140615T034512_001055_00107C_8977.zip',
            destination_path='./tmp'
        )

test/test_CMR.py:50: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:98: in downloadGranule
    return proxy._getHttpData(online_access_url, overwrite, final_destination)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = {}, url = 'https://datapool.asf.alaska.edu/GRD_HD/SA/S1A_S3_GRDH_1SDH_20140615T034444_20140615T034512_001055_00107C_8977.zip', overwrite = False
dest = './tmp/S1A_S3_GRDH_1SDH_20140615T034444_20140615T034512_001055_00107C_8977.zip'

    def _getHttpData(self, url, overwrite, dest):
        if overwrite or not os.path.exists(dest):
            r = requests.get(url, stream=True)
    
            # Try with a federated token if unauthorized
            if r.status_code == 401:
                if self._dps.running_in_dps:
                    dps_token_response = requests.get(
                        url=self._dps.dps_token_endpoint,
                        headers={
                            "dps-machine-token": self._dps.dps_machine_token,
                            "dps-job-id": self._dps.job_id,
                            "Accept": "application/json",
                        },
                    )
    
                    if dps_token_response:
                        # Running inside a DPS job, so call DAAC directly
                        dps_token_info = json.loads(dps_token_response.text)
                        r = requests.get(
                            url=r.url,
                            headers={
                                "Authorization": "Bearer {},Basic {}".format(
                                    dps_token_info["user_token"],
                                    dps_token_info["app_token"],
                                ),
                                "Connection": "close",
                            },
                            stream=True,
                        )
                else:
                    # Running in ADE, so call MAAP API
                    r = requests.get(
                        url=os.path.join(
                            self._cmrFileUrl,
                            urllib.parse.quote(urllib.parse.quote(url, safe="")),
                            endpoints.CMR_ALGORITHM_DATA,
                        ),
                        headers=self._apiHeader,
                        stream=True,
                    )
    
            r.raise_for_status()
            r.raw.decode_content = True
    
>           with open(dest, "wb") as f:
E           FileNotFoundError: [Errno 2] No such file or directory: './tmp/S1A_S3_GRDH_1SDH_20140615T034444_20140615T034512_001055_00107C_8977.zip'

maap/Result.py:132: FileNotFoundError
________________________________________________________________________________________ TestCMR.test_getUrl ________________________________________________________________________________________

self = <test.test_CMR.TestCMR testMethod=test_getUrl>

    def test_getUrl(self):
>       results = self.maap.searchGranule(page_num="1", concept_id="C1214470488-ASF", sort_key="-start_date", limit=1)

test/test_CMR.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:71: in searchGranule
    results = self._CMR.get_search_results(url=self.config.search_granule_url, limit=limit, **kwargs)
maap/utils/CMR.py:41: in get_search_results
    page = ET.XML(unparsed_page)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = '<?xml version="1.0" encoding="UTF-8"?>n<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>VYS...stId><HostId>V335NTUUcB839Chra5bK0DCyJlPRxC++rm4dIZwKr1+ZMQwNAgHaFI4HFiVdVEc1SO5EySMl+F0Z4MN33mR/Vw==</HostId></Error>'
parser = <xml.etree.ElementTree.XMLParser object at 0x12082ee80>

    def XML(text, parser=None):
        """Parse XML document from string constant.
    
        This function can be used to embed "XML Literals" in Python code.
    
        *text* is a string containing XML data, *parser* is an
        optional parser instance, defaulting to the standard XMLParser.
    
        Returns an Element instance.
    
        """
        if not parser:
            parser = XMLParser(target=TreeBuilder())
>       parser.feed(text)
E       xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39

/opt/homebrew/Cellar/[email protected]/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/xml/etree/ElementTree.py:1330: ParseError
___________________________________________________________________________________ TestCMR.test_granuleDownload ____________________________________________________________________________________

self = <test.test_CMR.TestCMR testMethod=test_granuleDownload>

    def test_granuleDownload(self):
>       results = self.maap.searchGranule(
            granule_ur=self._test_ur)

test/test_CMR.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:71: in searchGranule
    results = self._CMR.get_search_results(url=self.config.search_granule_url, limit=limit, **kwargs)
maap/utils/CMR.py:41: in get_search_results
    page = ET.XML(unparsed_page)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = '<?xml version="1.0" encoding="UTF-8"?>n<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>VYS...stId><HostId>Y7X4tybk2DynhO8qlU9zEvaJAkbW2V7uMROOrbRrnItvdSdVpXAAROqNCDNG4UGae6aM35Ab9wR3oG+dDqpGNg==</HostId></Error>'
parser = <xml.etree.ElementTree.XMLParser object at 0x12082f380>

    def XML(text, parser=None):
        """Parse XML document from string constant.
    
        This function can be used to embed "XML Literals" in Python code.
    
        *text* is a string containing XML data, *parser* is an
        optional parser instance, defaulting to the standard XMLParser.
    
        Returns an Element instance.
    
        """
        if not parser:
            parser = XMLParser(target=TreeBuilder())
>       parser.feed(text)
E       xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39

/opt/homebrew/Cellar/[email protected]/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/xml/etree/ElementTree.py:1330: ParseError
_____________________________________________________________________________ TestCMR.test_granuleDownloadExternalDAAC ______________________________________________________________________________

self = <test.test_CMR.TestCMR testMethod=test_granuleDownloadExternalDAAC>

    def test_granuleDownloadExternalDAAC(self):
        # results = self.maap.searchGranule(
        #     collection_concept_id='C1200231010-NASA_MAAP')
    
        results = self.maap.searchGranule(
            cmr_host='cmr.earthdata.nasa.gov',
            collection_concept_id='C2067521974-ORNL_CLOUD',
            granule_ur='GEDI_L3_Land_Surface_Metrics.GEDI03_elev_lowestmode_stddev_2019108_2020106_001_08.tif')
    
>       download = results[0].getData()
E       IndexError: list index out of range

test/test_CMR.py:46: IndexError
___________________________________________________________________________________ TestCMR.test_searchCollection ___________________________________________________________________________________

self = <test.test_CMR.TestCMR testMethod=test_searchCollection>

    def test_searchCollection(self):
>       results = self.maap.searchCollection(
            instrument=self._test_instrument_name_uavsar)

test/test_CMR.py:77: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:130: in searchCollection
    results = self._CMR.get_search_results(url=self.config.search_collection_url, limit=limit, **kwargs)
maap/utils/CMR.py:41: in get_search_results
    page = ET.XML(unparsed_page)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = '<?xml version="1.0" encoding="UTF-8"?>n<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>S72...stId><HostId>e725uNtCcMbqIXYp/t42PMaFYdFgfV+I8Ti5Kc84mI0Ts8otcOX/IJdTBuhIVHaa31S3ja4CLPG8yI4oRACa/Q==</HostId></Error>'
parser = <xml.etree.ElementTree.XMLParser object at 0x12082fec0>

    def XML(text, parser=None):
        """Parse XML document from string constant.
    
        This function can be used to embed "XML Literals" in Python code.
    
        *text* is a string containing XML data, *parser* is an
        optional parser instance, defaulting to the standard XMLParser.
    
        Returns an Element instance.
    
        """
        if not parser:
            parser = XMLParser(target=TreeBuilder())
>       parser.feed(text)
E       xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39

/opt/homebrew/Cellar/[email protected]/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/xml/etree/ElementTree.py:1330: ParseError
_________________________________________________________________________________ TestCMR.test_searchFromEarthdata __________________________________________________________________________________

self = <test.test_CMR.TestCMR testMethod=test_searchFromEarthdata>

    def test_searchFromEarthdata(self):
>       results = self.maap.searchCollection(
            instrument="LVIS|UAVSAR",
            platform="AIRCRAFT|B-200|COMPUTERS",
            data_center="MAAP Data Management Team|ORNL_DAAC")

test/test_CMR.py:70: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:130: in searchCollection
    results = self._CMR.get_search_results(url=self.config.search_collection_url, limit=limit, **kwargs)
maap/utils/CMR.py:41: in get_search_results
    page = ET.XML(unparsed_page)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = '<?xml version="1.0" encoding="UTF-8"?>n<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>S72...stId><HostId>Eqmw09AQAZCCMA4r2QA8tLqjvRJWYmqtk80UIxX6rjkZnXGeJ+JCo3kgjfxFB9kpnCftURiu90FwVGJUHaVBOw==</HostId></Error>'
parser = <xml.etree.ElementTree.XMLParser object at 0x12082f380>

    def XML(text, parser=None):
        """Parse XML document from string constant.
    
        This function can be used to embed "XML Literals" in Python code.
    
        *text* is a string containing XML data, *parser* is an
        optional parser instance, defaulting to the standard XMLParser.
    
        Returns an Element instance.
    
        """
        if not parser:
            parser = XMLParser(target=TreeBuilder())
>       parser.feed(text)
E       xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39

/opt/homebrew/Cellar/[email protected]/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/xml/etree/ElementTree.py:1330: ParseError
_______________________________________________________________________________ TestCMR.test_searchGranuleByGranuleUR _______________________________________________________________________________

self = <test.test_CMR.TestCMR testMethod=test_searchGranuleByGranuleUR>

    def test_searchGranuleByGranuleUR(self):
>       results = self.maap.searchGranule(
            granule_ur=self._test_ur)

test/test_CMR.py:27: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:71: in searchGranule
    results = self._CMR.get_search_results(url=self.config.search_granule_url, limit=limit, **kwargs)
maap/utils/CMR.py:41: in get_search_results
    page = ET.XML(unparsed_page)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = '<?xml version="1.0" encoding="UTF-8"?>n<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>S72...K1RM2</RequestId><HostId>jJJj3u2XwRx8Gfq93KxEA0CB4yR8ITPRJob9fhbcwe3THS3qJUfiwoXhh++kH9sPdMmQOTKnpNk=</HostId></Error>'
parser = <xml.etree.ElementTree.XMLParser object at 0x12082ee80>

    def XML(text, parser=None):
        """Parse XML document from string constant.
    
        This function can be used to embed "XML Literals" in Python code.
    
        *text* is a string containing XML data, *parser* is an
        optional parser instance, defaulting to the standard XMLParser.
    
        Returns an Element instance.
    
        """
        if not parser:
            parser = XMLParser(target=TreeBuilder())
>       parser.feed(text)
E       xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39

/opt/homebrew/Cellar/[email protected]/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/xml/etree/ElementTree.py:1330: ParseError
_________________________________________________________________________ TestCMR.test_searchGranuleByInstrumentAndSiteName _________________________________________________________________________

self = <test.test_CMR.TestCMR testMethod=test_searchGranuleByInstrumentAndSiteName>

    def test_searchGranuleByInstrumentAndSiteName(self):
>       results = self.maap.searchGranule(
            instrument=self._test_instrument_name_lvis,
            site_name=self._test_site_name)

test/test_CMR.py:58: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:71: in searchGranule
    results = self._CMR.get_search_results(url=self.config.search_granule_url, limit=limit, **kwargs)
maap/utils/CMR.py:41: in get_search_results
    page = ET.XML(unparsed_page)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = '<?xml version="1.0" encoding="UTF-8"?>n<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>JT3...Q9KHV</RequestId><HostId>FxXr+lrYXKQl2JHapV0fDcE/gMaeTUFN2RP0wwg9IzhZStW8ExWD9VxYUYeKTXys8C1KtwPCLNk=</HostId></Error>'
parser = <xml.etree.ElementTree.XMLParser object at 0x12082e840>

    def XML(text, parser=None):
        """Parse XML document from string constant.
    
        This function can be used to embed "XML Literals" in Python code.
    
        *text* is a string containing XML data, *parser* is an
        optional parser instance, defaulting to the standard XMLParser.
    
        Returns an Element instance.
    
        """
        if not parser:
            parser = XMLParser(target=TreeBuilder())
>       parser.feed(text)
E       xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39

/opt/homebrew/Cellar/[email protected]/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/xml/etree/ElementTree.py:1330: ParseError
_______________________________________________________________________ TestCMR.test_searchGranuleByInstrumentAndTrackNumber ________________________________________________________________________

self = <test.test_CMR.TestCMR testMethod=test_searchGranuleByInstrumentAndTrackNumber>

    def test_searchGranuleByInstrumentAndTrackNumber(self):
>       results = self.maap.searchGranule(
            instrument=self._test_instrument_name_uavsar,
            track_number=self._test_track_number,
            polarization='HH')

test/test_CMR.py:20: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:71: in searchGranule
    results = self._CMR.get_search_results(url=self.config.search_granule_url, limit=limit, **kwargs)
maap/utils/CMR.py:41: in get_search_results
    page = ET.XML(unparsed_page)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = '<?xml version="1.0" encoding="UTF-8"?>n<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>JT3...H0V3T</RequestId><HostId>K2suwvVBKKtPhHcUUH4ki4cALpf42AcX1fZx7mPuLew23IdLYBczMj8jvvt6h3QBcMmRdw+XBMk=</HostId></Error>'
parser = <xml.etree.ElementTree.XMLParser object at 0x1208b0180>

    def XML(text, parser=None):
        """Parse XML document from string constant.
    
        This function can be used to embed "XML Literals" in Python code.
    
        *text* is a string containing XML data, *parser* is an
        optional parser instance, defaulting to the standard XMLParser.
    
        Returns an Element instance.
    
        """
        if not parser:
            parser = XMLParser(target=TreeBuilder())
>       parser.feed(text)
E       xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39

/opt/homebrew/Cellar/[email protected]/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/xml/etree/ElementTree.py:1330: ParseError
___________________________________________________________________________ TestCMR.test_searchGranuleWithPipeDelimiters ____________________________________________________________________________

self = <test.test_CMR.TestCMR testMethod=test_searchGranuleWithPipeDelimiters>

    def test_searchGranuleWithPipeDelimiters(self):
>       results = self.maap.searchGranule(
            instrument="LVIS|UAVSAR",
            platform="AIRCRAFT")

test/test_CMR.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:71: in searchGranule
    results = self._CMR.get_search_results(url=self.config.search_granule_url, limit=limit, **kwargs)
maap/utils/CMR.py:41: in get_search_results
    page = ET.XML(unparsed_page)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = '<?xml version="1.0" encoding="UTF-8"?>n<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>JT3...4Y3D1</RequestId><HostId>fX4LwJQILEu8v2jz+bxI8gLH8O+ogFmXweHETG0yLlZeokU4JGe20LdjztasPIyTrsIUyO6kqEQ=</HostId></Error>'
parser = <xml.etree.ElementTree.XMLParser object at 0x1208b0400>

    def XML(text, parser=None):
        """Parse XML document from string constant.
    
        This function can be used to embed "XML Literals" in Python code.
    
        *text* is a string containing XML data, *parser* is an
        optional parser instance, defaulting to the standard XMLParser.
    
        Returns an Element instance.
    
        """
        if not parser:
            parser = XMLParser(target=TreeBuilder())
>       parser.feed(text)
E       xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39

/opt/homebrew/Cellar/[email protected]/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/xml/etree/ElementTree.py:1330: ParseError
______________________________________________________________________________ TestCMR.test_searchGranuleWithWildcards ______________________________________________________________________________

self = <test.test_CMR.TestCMR testMethod=test_searchGranuleWithWildcards>

    def test_searchGranuleWithWildcards(self):
>       results = self.maap.searchGranule(collection_concept_id="C1200110748-NASA_MAAP",
                                              readable_granule_name='*185*')

test/test_CMR.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:71: in searchGranule
    results = self._CMR.get_search_results(url=self.config.search_granule_url, limit=limit, **kwargs)
maap/utils/CMR.py:41: in get_search_results
    page = ET.XML(unparsed_page)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

text = '<?xml version="1.0" encoding="UTF-8"?>n<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>JT3...3GYDX</RequestId><HostId>sBFlA7w0vXTmkApJ6o7R/+zd2ACtuVHTKGCqab2MJBg82o63suMb3Pwq6Gur2zpIvd0N4MkKiUw=</HostId></Error>'
parser = <xml.etree.ElementTree.XMLParser object at 0x12082e840>

    def XML(text, parser=None):
        """Parse XML document from string constant.
    
        This function can be used to embed "XML Literals" in Python code.
    
        *text* is a string containing XML data, *parser* is an
        optional parser instance, defaulting to the standard XMLParser.
    
        Returns an Element instance.
    
        """
        if not parser:
            parser = XMLParser(target=TreeBuilder())
>       parser.feed(text)
E       xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39

/opt/homebrew/Cellar/[email protected]/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/xml/etree/ElementTree.py:1330: ParseError
__________________________________________________________________________________ TestDPS.test_registerAlgorithm ___________________________________________________________________________________

self = <test.test_DPS.TestDPS testMethod=test_registerAlgorithm>

    def test_registerAlgorithm(self):
>       self.maap.register_algorithm_from_yaml_file("dps_test_algo_config.yaml")

test/test_DPS.py:23: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:157: in register_algorithm_from_yaml_file
    algo_config = algorithm_utils.read_yaml_file(file_path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

algo_yaml = 'dps_test_algo_config.yaml'

    def read_yaml_file(algo_yaml):
        algo_config = dict()
>       with open(algo_yaml, 'r') as fr:
E       FileNotFoundError: [Errno 2] No such file or directory: 'dps_test_algo_config.yaml'

maap/utils/algorithm_utils.py:17: FileNotFoundError
___________________________________________________________________________________ TestMAAP.test_edc_credentials ___________________________________________________________________________________

self = <test.test_MAAP.TestMAAP testMethod=test_edc_credentials>

    def test_edc_credentials(self):
>       results = self.maap.aws.earthdata_s3_credentials('https://data.lpdaac.earthdatacloud.nasa.gov/s3credentials');

test/test_MAAP.py:73: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/AWS.py:62: in earthdata_s3_credentials
    response.raise_for_status()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <Response [403]>

    def raise_for_status(self):
        """Raises :class:`HTTPError`, if one occurred."""
    
        http_error_msg = ""
        if isinstance(self.reason, bytes):
            # We attempt to decode utf-8 first because some servers
            # choose to localize their reason strings. If the string
            # isn't utf-8, we fall back to iso-8859-1 for all other
            # encodings. (See PR #3538)
            try:
                reason = self.reason.decode("utf-8")
            except UnicodeDecodeError:
                reason = self.reason.decode("iso-8859-1")
        else:
            reason = self.reason
    
        if 400 <= self.status_code < 500:
            http_error_msg = (
                f"{self.status_code} Client Error: {reason} for url: {self.url}"
            )
    
        elif 500 <= self.status_code < 600:
            http_error_msg = (
                f"{self.status_code} Server Error: {reason} for url: {self.url}"
            )
    
        if http_error_msg:
>           raise HTTPError(http_error_msg, response=self)
E           requests.exceptions.HTTPError: 403 Client Error: FORBIDDEN for url: https://api.maap-project.org/api/members/self/awsAccess/edcCredentials/https%253A%252F%252Fdata.lpdaac.earthdatacloud.nasa.gov%252Fs3credentials

../../../Library/Caches/pypoetry/virtualenvs/maap-py-5b7ungGG-py3.12/lib/python3.12/site-packages/requests/models.py:1024: HTTPError
____________________________________________________________________________________ TestMAAP.test_executeQuery _____________________________________________________________________________________

self = <test.test_MAAP.TestMAAP testMethod=test_executeQuery>

    def test_executeQuery(self):
>       response = self.maap.executeQuery(
            src={
                "Collection": {
                    "ShortName": "GEDI Cal/Val Field Data_1",
                    "VersionId": "001"
                }
            },
            query={
                "bbox": [
                -122.6,
                38.4,
                -122.5,
                38.5
                ],
                "fields": ['project', 'plot', 'p.geom']
            }
        )
E       AttributeError: 'MAAP' object has no attribute 'executeQuery'

test/test_MAAP.py:77: AttributeError
__________________________________________________________________________________ TestMAAP.test_genFromEarthdata ___________________________________________________________________________________

self = <test.test_MAAP.TestMAAP testMethod=test_genFromEarthdata>

    def test_genFromEarthdata(self):
        input = """
            {
             "p": "C1200015068-NASA_MAAP!C1200090707-NASA_MAAP!C1200015148-NASA_MAAP",
             "pg": [
              {
               "exclude": {
                "echo_granule_id": [
                 "G1200015109-NASA_MAAP",
                 "G1200015110-NASA_MAAP"
                ]
               }
              }
             ],
             "m": "-87.55224609375!75.30249023437501!0!1!0!0,2",
             "processing_level_id_h": [
              "1A",
              "1B",
              "2",
              "4"
             ],
             "instrument_h": [
              "LVIS",
              "UAVSAR"
             ],
             "platform_h": [
              "AIRCRAFT",
              "B-200",
              "COMPUTERS"
             ],
             "data_center_h": [
              "MAAP Data Management Team"
             ],
             "bounding_box": "-35.4375,-55.6875,-80.4375,37.6875"
            }
        """
    
        var_name = 'maapVar'
>       testResult = self.maap.getCallFromEarthdataQuery(query=input, variable_name=var_name)

test/test_MAAP.py:57: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:109: in getCallFromEarthdataQuery
    return self._CMR.generateGranuleCallFromEarthDataRequest(query, variable_name, limit)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <maap.utils.CMR.CMR object at 0x1208eac30>
query = '\n            {\n             "p": "C1200015068-NASA_MAAP!C1200090707-NASA_MAAP!C1200015148-NASA_MAAP",\n            ...ent Team"\n             ],\n             "bounding_box": "-35.4375,-55.6875,-80.4375,37.6875"\n            }\n        '
variable_name = 'maapVar', limit = 1000

    def generateGranuleCallFromEarthDataRequest(self, query, variable_name='maap', limit=1000):
        """
            Generate a literal string to use for calling the MAAP API
    
            :param query: a Json-formatted string from an Earthdata search-style query. See: https://github.com/MAAP-Project/earthdata-search/blob/master/app/controllers/collections_controller.rb
            :param variable_name: the name of the MAAP variable to qualify the search call
            :param limit: the max records to return
            :return: string in the form of a MAAP API call
            """
        y = json.loads(query)
    
        params = []
    
        for key, value in y.items():
            if key.endswith("_h"):
                params.append(key[:-2] + "=\"" + "|".join(value) + "\"")
            elif key == "bounding_box":
                params.append(key + "=\"" + value + "\"")
            elif key == "p":
                params.append("collection_concept_id=\"" + value.replace("!", "|") + "\"")
            elif key == "pg":
>               params.append("readable_granule_name=\"" + '|'.join(value[0]['readable_granule_name'])
                              .replace('"', '\\"') + "\"")
E               KeyError: 'readable_granule_name'

maap/utils/CMR.py:127: KeyError
_____________________________________________________________________________________ TestMAAP.test_getProfile ______________________________________________________________________________________

self = <test.test_MAAP.TestMAAP testMethod=test_getProfile>

    def test_getProfile(self):
        results = self.maap.profile.account_info()
    
>       self.assertTrue(results['id'] > 0)
E       TypeError: 'NoneType' object is not subscriptable

test/test_MAAP.py:17: TypeError
____________________________________________________________________________ TestConfig.test_get_config_url_with_scheme _____________________________________________________________________________

self = <test.test_config_reader.TestConfig testMethod=test_get_config_url_with_scheme>

    def test_get_config_url_with_scheme(self):
        maap_host = "https://api.maap-project.org/"
        config_url = config_reader._get_config_url(maap_host)
>       self.assertEqual("https://api.maap-project.org/api/environment/config", config_url)
E       AssertionError: 'https://api.maap-project.org/api/environment/config' != 'https://api.maap-project.org/config'
E       - https://api.maap-project.org/api/environment/config
E       ?                              ----------------
E       + https://api.maap-project.org/config

test/test_config_reader.py:22: AssertionError
___________________________________________________________________________ TestConfig.test_get_config_url_without_scheme ___________________________________________________________________________

self = <test.test_config_reader.TestConfig testMethod=test_get_config_url_without_scheme>

    def test_get_config_url_without_scheme(self):
        maap_host = "api.maap-project.org"
        config_url = config_reader._get_config_url(maap_host)
>       self.assertEqual("https://api.maap-project.org/api/environment/config", config_url)
E       AssertionError: 'https://api.maap-project.org/api/environment/config' != 'http://api.maap-project.org/config'
E       - https://api.maap-project.org/api/environment/config
E       ?     -                        ----------------
E       + http://api.maap-project.org/config

test/test_config_reader.py:33: AssertionError
_________________________________________________________________________________ TestConfig.test_read_conf_default _________________________________________________________________________________

self = <test.test_config_reader.TestConfig testMethod=test_read_conf_default>

    def test_read_conf_default(self):
        maap = MAAP()
>       conf = MaapConfig()
E       TypeError: MaapConfig.__init__() missing 1 required positional argument: 'maap_host'

test/test_config_reader.py:72: TypeError
_________________________________________________________________________________ TestConfig.test_read_conf_env_var _________________________________________________________________________________

self = <test.test_config_reader.TestConfig testMethod=test_read_conf_env_var>

    def test_read_conf_env_var(self):
        os.environ.setdefault("MAAP_API_HOST", "api.dit.maap-project.org")
        maap = MAAP()
        conf = maap.config
        print(dir(maap.config))
>       conf = MaapConfig()
E       TypeError: MaapConfig.__init__() missing 1 required positional argument: 'maap_host'

test/test_config_reader.py:60: TypeError
--------------------------------------------------------------------------------------- Captured stdout call ----------------------------------------------------------------------------------------
['_MaapConfig__config', '_PROXY_GRANTING_TICKET', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_get_api_endpoint', 'algorithm_build', 'algorithm_register', 'aws_access_key', 'aws_access_secret', 'content_type', 'dps_job', 'edc_credentials', 'get', 'indexed_attributes', 'maap_api_root', 'maap_host', 'maap_token', 'mapbox_token', 'mas_algo', 'member', 'member_dps_token', 'page_size', 'requester_pays', 's3_signed_url', 's3_user_upload_bucket', 's3_user_upload_dir', 'search_collection_url', 'search_granule_url', 'tiler_endpoint', 'wmts', 'workspace_bucket_credentials']
_______________________________________________________________________________ TestConfig.test_read_conf_hosted_api ________________________________________________________________________________

self = <test.test_config_reader.TestConfig testMethod=test_read_conf_hosted_api>

    def test_read_conf_hosted_api(self):
>       maap = MAAP(maap_host="api.dit.maap-project.org")

test/test_config_reader.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:31: in __init__
    self.config = MaapConfig(maap_host=maap_host)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <maap.config_reader.MaapConfig object at 0x1230c81d0>, maap_host = 'api.dit.maap-project.org'

    def __init__(self, maap_host):
        self.__config = _get_client_config(maap_host)
        self.maap_host = maap_host
>       self.maap_api_root = self.__config.get("service").get("maap_api_root")
E       AttributeError: 'NoneType' object has no attribute 'get'

maap/config_reader.py:75: AttributeError
----------------------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------------------
ERROR    maap.config_reader:config_reader.py:68 Unable to read maap config from api: 404 Client Error: NOT FOUND for url: https://api.dit.maap-project.org/config
______________________________________________________________________ TestConfig.test_read_conf_localhost_without_scheme_api _______________________________________________________________________

self = <test.test_config_reader.TestConfig testMethod=test_read_conf_localhost_without_scheme_api>

    def test_read_conf_localhost_without_scheme_api(self):
>       maap = MAAP(maap_host="localhost:5000")

test/test_config_reader.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
maap/maap.py:31: in __init__
    self.config = MaapConfig(maap_host=maap_host)
maap/config_reader.py:73: in __init__
    self.__config = _get_client_config(maap_host)
maap/config_reader.py:59: in _get_client_config
    config_url = _get_config_url(maap_host)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

maap_host = 'localhost:5000'

    def _get_config_url(maap_host):
        # This is added to remove the assumption of scheme specially for local dev testing
        # also maintains backwards compatibility for user to use MAAP("api.maap-project.org")
        base_url = urlparse(maap_host)
        maap_api_config_endpoint = os.getenv("MAAP_API_CONFIG_ENDPOINT", "api/environment/config")
        supported_schemes = ("http", "https")
        if base_url.scheme and base_url.scheme not in supported_schemes:
>           raise ValueError(f"Unsupported scheme for MAAP API host: {base_url.scheme!r}. Must be one of: {', '.join(map(repr, supported_schemes))}.")
E           ValueError: Unsupported scheme for MAAP API host: 'localhost'. Must be one of: 'http', 'https'.

maap/config_reader.py:27: ValueError
______________________________________________________________________________ TestConfig.test_read_conf_uninitialized ______________________________________________________________________________

self = <test.test_config_reader.TestConfig testMethod=test_read_conf_uninitialized>

    def test_read_conf_uninitialized(self):
        with TestConfig().assertRaises(expected_exception=EnvironmentError, msg="Successfully raised exception") as err:
>           MaapConfig()
E           TypeError: MaapConfig.__init__() missing 1 required positional argument: 'maap_host'

test/test_config_reader.py:79: TypeError
========================================================================================= warnings summary ==========================================================================================
test/test_Result.py: 16 warnings
  /Users/greguska/Library/Caches/pypoetry/virtualenvs/maap-py-5b7ungGG-py3.12/lib/python3.12/site-packages/botocore/auth.py:419: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    datetime_now = datetime.datetime.utcnow()

test/test_Result.py::test_getData_s3_url_with_fallback_in_order
test/test_Result.py::test_getData_s3_url_with_fallback_in_order
test/test_Result.py::test_getData_s3_with_multiple_fallbacks
test/test_Result.py::test_getData_s3_with_multiple_fallbacks
  /Users/greguska/Library/Caches/pypoetry/virtualenvs/maap-py-5b7ungGG-py3.12/lib/python3.12/site-packages/botocore/endpoint.py:172: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    response_received_timestamp = datetime.datetime.utcnow()

test/test_Result.py::test_getData_s3_url_with_fallback_in_order
test/test_Result.py::test_getData_s3_url_with_fallback_in_order
test/test_Result.py::test_getData_s3_with_multiple_fallbacks
test/test_Result.py::test_getData_s3_with_multiple_fallbacks
  /Users/greguska/Library/Caches/pypoetry/virtualenvs/maap-py-5b7ungGG-py3.12/lib/python3.12/site-packages/botocore/endpoint.py:155: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    local_timestamp = datetime.datetime.utcnow()

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
====================================================================================== short test summary info ======================================================================================
FAILED test/test_CMR.py::TestCMR::test_direct_granuleDownload - FileNotFoundError: [Errno 2] No such file or directory: './tmp/S1A_S3_GRDH_1SDH_20140615T034444_20140615T034512_001055_00107C_8977.zip'
FAILED test/test_CMR.py::TestCMR::test_getUrl - xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39
FAILED test/test_CMR.py::TestCMR::test_granuleDownload - xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39
FAILED test/test_CMR.py::TestCMR::test_granuleDownloadExternalDAAC - IndexError: list index out of range
FAILED test/test_CMR.py::TestCMR::test_searchCollection - xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39
FAILED test/test_CMR.py::TestCMR::test_searchFromEarthdata - xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39
FAILED test/test_CMR.py::TestCMR::test_searchGranuleByGranuleUR - xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39
FAILED test/test_CMR.py::TestCMR::test_searchGranuleByInstrumentAndSiteName - xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39
FAILED test/test_CMR.py::TestCMR::test_searchGranuleByInstrumentAndTrackNumber - xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39
FAILED test/test_CMR.py::TestCMR::test_searchGranuleWithPipeDelimiters - xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39
FAILED test/test_CMR.py::TestCMR::test_searchGranuleWithWildcards - xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 39
FAILED test/test_DPS.py::TestDPS::test_registerAlgorithm - FileNotFoundError: [Errno 2] No such file or directory: 'dps_test_algo_config.yaml'
FAILED test/test_MAAP.py::TestMAAP::test_edc_credentials - requests.exceptions.HTTPError: 403 Client Error: FORBIDDEN for url: https://api.maap-project.org/api/members/self/awsAccess/edcCredentials/https%253A%252F%252Fdata.lpdaac.earthdatacloud.nasa.g...
FAILED test/test_MAAP.py::TestMAAP::test_executeQuery - AttributeError: 'MAAP' object has no attribute 'executeQuery'
FAILED test/test_MAAP.py::TestMAAP::test_genFromEarthdata - KeyError: 'readable_granule_name'
FAILED test/test_MAAP.py::TestMAAP::test_getProfile - TypeError: 'NoneType' object is not subscriptable
FAILED test/test_config_reader.py::TestConfig::test_get_config_url_with_scheme - AssertionError: 'https://api.maap-project.org/api/environment/config' != 'https://api.maap-project.org/config'
FAILED test/test_config_reader.py::TestConfig::test_get_config_url_without_scheme - AssertionError: 'https://api.maap-project.org/api/environment/config' != 'http://api.maap-project.org/config'
FAILED test/test_config_reader.py::TestConfig::test_read_conf_default - TypeError: MaapConfig.__init__() missing 1 required positional argument: 'maap_host'
FAILED test/test_config_reader.py::TestConfig::test_read_conf_env_var - TypeError: MaapConfig.__init__() missing 1 required positional argument: 'maap_host'
FAILED test/test_config_reader.py::TestConfig::test_read_conf_hosted_api - AttributeError: 'NoneType' object has no attribute 'get'
FAILED test/test_config_reader.py::TestConfig::test_read_conf_localhost_without_scheme_api - ValueError: Unsupported scheme for MAAP API host: 'localhost'. Must be one of: 'http', 'https'.
FAILED test/test_config_reader.py::TestConfig::test_read_conf_uninitialized - TypeError: MaapConfig.__init__() missing 1 required positional argument: 'maap_host'
============================================================================ 23 failed, 32 passed, 24 warnings in 8.02s =============================================================================
@frankinspace frankinspace added the bug Something isn't working label Jul 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant