Skip to content

Commit 17d3909

Browse files
Merge pull request #119 from duckontheweb/fix/network-request-during-test
Block network requests during unit tests
2 parents e41c7e8 + 000b547 commit 17d3909

File tree

5 files changed

+160
-4
lines changed

5 files changed

+160
-4
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
66

77
## [Unreleased]
88

9+
### Added
10+
11+
- Adds `--block-network` option to all test commands to ensure no network requests are made during unit tests
12+
[#119](https://github.com/stac-utils/pystac-client/pull/119)
13+
914
### Fixed
1015

1116
- `Client.get_collections` raised an exception when API did not publish `/collections` conformance class instead of falling back to using child links

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ $ pip install -r requirements-dev.txt
3737
To run just the tests
3838

3939
```shell
40-
$ pytest -v -s --cov pystac_client --cov-report term-missing
40+
$ pytest -v -s --block-network --cov pystac_client --cov-report term-missing
4141
```
4242

4343
The pystac-client tests use [vcrpy](https://vcrpy.readthedocs.io/en/latest/) to mock API calls
@@ -46,7 +46,7 @@ function to indicate `vcrpy` should be used. Record the new responses and commit
4646
repository.
4747

4848
```shell
49-
$ pytest -v -s --record-mode new_episodes
49+
$ pytest -v -s --record-mode new_episodes --block-network
5050
$ git add <new files here>
5151
$ git commit -a -m 'new test episodes'
5252
```
@@ -55,7 +55,7 @@ To update pystac-client to use future versions of STAC API, the existing recorde
5555
should be "re-recorded":
5656

5757
```shell
58-
$ pytest -v -s --record-mode rewrite
58+
$ pytest -v -s --record-mode rewrite --block-network
5959
$ git commit -a -m 'updated test episodes'
6060
```
6161

scripts/test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ if [ "${BASH_SOURCE[0]}" = "${0}" ]; then
3434
*.md
3535

3636
# Test suite with coverage enabled
37-
pytest -s --cov pystac_client --cov-report term-missing
37+
pytest -s --block-network --cov pystac_client --cov-report term-missing
3838
coverage xml
3939
fi
4040
fi
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
interactions:
2+
- request:
3+
body: '{"bbox": [-73.21, 43.99, -73.12, 44.05], "query": {"gsd": {"eq": 10.0}}}'
4+
headers:
5+
Accept:
6+
- '*/*'
7+
Accept-Encoding:
8+
- gzip, deflate
9+
Connection:
10+
- keep-alive
11+
Content-Length:
12+
- '72'
13+
Content-Type:
14+
- application/json
15+
User-Agent:
16+
- python-requests/2.26.0
17+
method: POST
18+
uri: https://planetarycomputer.microsoft.com/api/stac/v1/search
19+
response:
20+
body:
21+
string: !!binary |
22+
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
55+
+Adpc2ReNScAAA==
56+
headers:
57+
Content-Encoding:
58+
- gzip
59+
Content-Length:
60+
- '1891'
61+
Content-Type:
62+
- application/json
63+
Date:
64+
- Thu, 11 Nov 2021 18:26:30 GMT
65+
Strict-Transport-Security:
66+
- max-age=15724800; includeSubDomains
67+
Vary:
68+
- Accept-Encoding
69+
X-Azure-Ref:
70+
- 0VGCNYQAAAABBCsHGOKgFRKAFtUqjfhe1Qk9TMzFFREdFMDUxMAA5MjdhYmZhNi0xOWY2LTRhZjEtYTA5ZC1jOTU5ZDlhMWU2NDQ=
71+
X-Cache:
72+
- CONFIG_NOCACHE
73+
status:
74+
code: 200
75+
message: OK
76+
- request:
77+
body: '{"bbox": [-73.21, 43.99, -73.12, 44.05], "query": {"gsd": {"eq": 10}}}'
78+
headers:
79+
Accept:
80+
- '*/*'
81+
Accept-Encoding:
82+
- gzip, deflate
83+
Connection:
84+
- keep-alive
85+
Content-Length:
86+
- '70'
87+
Content-Type:
88+
- application/json
89+
User-Agent:
90+
- python-requests/2.26.0
91+
method: POST
92+
uri: https://planetarycomputer.microsoft.com/api/stac/v1/search
93+
response:
94+
body:
95+
string: !!binary |
96+
H4sIAFdgjWEC/+1Ya2/bNhT9K4Q/FAkmS3KspLGHYCjWdg9gXbBk+7AiCGiJltlKokZSdryi/33n
97+
UrZFO48B25Kum4M8HJG899xzH7y6H3p2WYveuPdacNto8bUqCpFaqape0Ju2z0xv/PZDT2bYVSXH
98+
i/h50h8MsTyZqBss9Z8nYRzHx+7reZAMw9FolLivk6D//Kj7dxQkx93W5CrYUQ6Zhazet/q0KLCS
99+
+nhWu3ldFzLl9DB6Z9zKTIspVmbW1mYcRXXBK2G5XqaqrBsrdFjKVCujpjbEo4jXMjKWp9F8EHUa
100+
TDTMRN03gpeFMKb3MVijqLkWlf2UCLRSj6bfU2NEMb1bTS7UF49oaiStKE3kxVcHihcQWnErHiTA
101+
SlvQkpWQ91Qoo1Zbh3Uu+W3dXCYi45aLZiGMDSeFmkCnFuFCVplamBDInKLoVSHmrVWQffnd69dr
102+
XdHPF99cXA+G16v/w5uy8ANUi7kUi79mNkEjs8m4qOT1V539Z1vmP6MdZ1s1YM36D7xmaspoQ+cl
103+
K25sNLOEFLnOjREWuf2hRwrp7xPQZKUXz7LkuYDLptMvmRdBZ4jt9mGt1RQOPUsL1WR9VVtZyt9F
104+
BglaFa4OttivOsNJIRtEQ8Z1CqJSVWVspZwN2A1+MpFrQbGbCZNqWbtiNu5dzqRhFD7Em50JNnzJ
105+
Nnaxc61yzUt2MHz56vyQrT1ACLMmtYbh8I5WFGpVNHQ6ZIyOMcKKo3ouGDdOh9goKPhSaFJ9icdv
106+
3DNeMLgxYBzCoGcuM8Em3MjUOyarqdJl+xmf2Cuu7YyZVIoqFczYJpPCOAkIpFpWuU80UFcOxs8V
107+
AiVjFxZJbUJ2QcetNLY9SYY0GuJKXsFh2rDGCM8i0psjOIA3nfEqF3RCgIlZwGbLDK5SOUCXKhO4
108+
TvLAE6igWGn3cIMPGufSNLyQvzuUwQp+tWQKYPWWBaGHg1JKARmvPIJoBXEOM7nFjso4s8DzxoWO
109+
+dZSzmYyn3meaxfhv1c8na0CAxpWR3xxROMEacL4nMuCTxBHmhsk+A6W9V6cxWIpK9WYbf4D9qLg
110+
5j0P2Ld8waUMGDZqxxMYlgYVJMOmH8SNTJWD/TX8kvGtKMMFyZoaHyGWVMkKhBZLirtKLNo9E8Rp
111+
KTrAcPyak21BmdByDkFTrUqW4aMGBysXuk2OXNqJME1xHnstoJFH4GL8UTqTdGMwswQnpUPdwGhi
112+
A+Is3FmwUnCDriOkFDDCUw+OtZw0ZAsCFtUBqVjPEFKdYBfKJNE5IxMpakuxSnXTRpAkIG26UG4s
113+
JBKFPPFGUcq8KGFkitB5idanJCGD0emQHbx58ZKdDg9DOKXwXDnnRUOJBXiQWwq7CqGAKdjzpx6m
114+
cyi2QlOaOrLuQPLLmhgf0ilB+gWYTg8dUR19G3kwDVjnuGQI2ypnNMi918FdzFaryoNQORA3qait
115+
S+82Ig8Z3Nwlh6N64Je8A6SmVjfg3gpIGMYrZg6dA3bq487mwWZzyL4Dpcq46Fjngqqwp1AL2OKl
116+
px+EW4bAX/AHbW0KG7TSzG3jO9va45YdPQDxpLMn1zJjpuYpSlbIzlF1O7B0F3SMcut8O7iLAp9L
117+
l1ySQgZuRF4i5FOkS4XD8C+KHvzcUNgg1TU7kFPD9SHzWiNUe8CgEgqvH8WDGAXhHMViE6XoPcAV
118+
mdydcpWQgnJBt4sTSltbQ9qgd2xt7jmX5c0EBZhlquSyCtH29PL6ff5IHcS6c3Aq7muF4Yj3uJq+
119+
ML8VyLOh3yCASd42CcC5+edpuh1qCu+E3C7cjdHOmnJSIXyeCOS7Ot9tyd7VIvfxdZAcQDRJrskH
120+
vnXbdYln31/8+KYtq5mYcuQd4ruiu6PK/4FGeK01pF8Pt8TG64mftW3uGcl6hlNU/uvripfijK5V
121+
BPAzZCHqpzjrD/AuHCT49eCLTceKe9cgRlo7RXa97vs9Zn5arbHuneCffkdYSQrrKn98Yjbm00Xn
122+
DLjaiR7A6H2koiBcGVs6NtoN56pY5o5F7+qGsLdv/cGEP7O4CnaWNhOLE7e0mXWcPLj0gEBv6Yqc
123+
6Y04xr3t9/8ATlNUiKVwL065yXrjQRzQWwiqdEkmovKO+jEYPrmM47H7/rU9+G4saoMyeZyMTlcP
124+
zIwTL28H8engKHC/wSYi5npb4mk/Pu7Ho9sSrUaBp54GQmKyNx4dHdP3MMC/wc4syD3a2bY1AnI7
125+
6GcQxgDibpQ7oWwbZxHBAkyNtchb3qokXpzGdDXQS/w1tYztAgSHFEbuMd5HRUULLqDW8U9L/W4p
126+
zFFSmkkoVUQmt65B7JOgyKQzUXJXEygTN2Ox5E/HYt4cbLg9FkNMeFtP9mOx/Vjs1sAp+SzGYskT
127+
jsWSneYi+eRjseTfOBa7m6ZPNBZL9mOx/VhsPxbbj8X2Y7H9WGw/Fvs8xmLJaiyWfAZjsfubwn/R
128+
WOxukP/NsViyH4s9DjFPMhY7un+Kldw/+3pg6QGBR//zsZg/AvrMx2JXtwdWn3xQ8/fVtO9SeGf/
129+
+Adpc2ReNScAAA==
130+
headers:
131+
Content-Encoding:
132+
- gzip
133+
Content-Length:
134+
- '1891'
135+
Content-Type:
136+
- application/json
137+
Date:
138+
- Thu, 11 Nov 2021 18:26:32 GMT
139+
Strict-Transport-Security:
140+
- max-age=15724800; includeSubDomains
141+
Vary:
142+
- Accept-Encoding
143+
X-Azure-Ref:
144+
- 0VmCNYQAAAADpEXziNyGVQa/WlpSRtwH4Qk9TMzIxMDAwMTA5MDQ1ADkyN2FiZmE2LTE5ZjYtNGFmMS1hMDlkLWM5NTlkOWExZTY0NA==
145+
X-Cache:
146+
- CONFIG_NOCACHE
147+
status:
148+
code: 200
149+
message: OK
150+
version: 1

tests/test_item_search.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,7 @@ def test_get_all_items(self):
370370

371371

372372
class TestItemSearchQuery:
373+
@pytest.mark.vcr
373374
def test_query_shortcut_syntax(self):
374375
search = ItemSearch(url=SEARCH_URL,
375376
bbox=(-73.21, 43.99, -73.12, 44.05),

0 commit comments

Comments
 (0)