def test_datetime_results(self):
        # Datetime range string
        datetime_ = '2019-01-01T00:00:01Z/2019-01-01T00:00:10Z'
        search = ItemSearch(url=SEARCH_URL, datetime=datetime_)
        results = list(search.items())
        assert len(results) == 12

        min_datetime = datetime(2019, 1, 1, 0, 0, 1, tzinfo=tzutc())
        max_datetime = datetime(2019, 1, 1, 0, 0, 10, tzinfo=tzutc())
        search = ItemSearch(url=SEARCH_URL,
                            datetime=(min_datetime, max_datetime))
        results = search.items()
        assert all(min_datetime <= item.datetime <= (max_datetime +
                                                     timedelta(seconds=1))
                   for item in results)
    def test_results(self):
        search = ItemSearch(
            url=SEARCH_URL,
            collections='naip',
            max_items=20,
            limit=10,
        )
        results = search.items()

        assert all(isinstance(item, pystac.Item) for item in results)
    def test_ids_results(self):
        ids = [
            'm_3510836_se_12_060_20180508_20190331',
            'm_3510840_se_12_060_20180504_20190331'
        ]
        search = ItemSearch(
            url=SEARCH_URL,
            ids=ids,
        )
        results = list(search.items())

        assert len(results) == 2
        assert all(item.id in ids for item in results)
    def test_intersects_results(self):
        # GeoJSON-like dict
        intersects_dict = {
            'type':
            'Polygon',
            'coordinates': [[[-73.21, 43.99], [-73.21, 44.05], [-73.12, 44.05],
                             [-73.12, 43.99], [-73.21, 43.99]]]
        }
        search = ItemSearch(url=SEARCH_URL,
                            intersects=intersects_dict,
                            collections='naip')
        results = list(search.items())
        assert len(results) == 30

        # Geo-interface object
        class MockGeoObject:
            __geo_interface__ = intersects_dict

        intersects_obj = MockGeoObject()
        search = ItemSearch(url=SEARCH_URL,
                            intersects=intersects_obj,
                            collections='naip')
        results = search.items()
        assert all(isinstance(item, pystac.Item) for item in results)