Skip to content

Commit 90c5652

Browse files
committed
Remove an utility function for reading test data
`astroquery.utils.tap.xmlparser.utils.read_file_content()` has been replaced with the standard library `pathlib.Path.read_text()`. Furthermore, in the modules where multiple test functions previously used `read_file_content()` to read the data files, they are now read once at the module level instead.
1 parent d46bb87 commit 90c5652

File tree

5 files changed

+29
-76
lines changed

5 files changed

+29
-76
lines changed

astroquery/esa/jwst/tests/test_jwsttap.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"""
1111
import os
1212
import shutil
13+
from pathlib import Path
1314
from unittest.mock import MagicMock
1415

1516
import astropy.units as u
@@ -28,12 +29,14 @@
2829
from astroquery.utils.tap.conn.tests.DummyConnHandler import DummyConnHandler
2930
from astroquery.utils.tap.conn.tests.DummyResponse import DummyResponse
3031
from astroquery.utils.tap.core import TapPlus
31-
from astroquery.utils.tap.xmlparser import utils
3232
from astroquery.vizier import Vizier
3333

3434
from astroquery.esa.jwst import conf
3535

3636

37+
JOB_DATA = (Path(__file__).with_name("data") / "job_1.vot").read_text()
38+
39+
3740
def data_path(filename):
3841
data_dir = os.path.join(os.path.dirname(__file__), 'data')
3942
return os.path.join(data_dir, filename)
@@ -234,9 +237,7 @@ def test_query_region(self):
234237
# Launch response: we use default response because the
235238
# query contains decimals
236239
responseLaunchJob = DummyResponse(200)
237-
jobDataFile = data_path('job_1.vot')
238-
jobData = utils.read_file_content(jobDataFile)
239-
responseLaunchJob.set_data(method='POST', body=jobData)
240+
responseLaunchJob.set_data(method='POST', body=JOB_DATA)
240241
# The query contains decimals: force default response
241242
connHandler.set_default_response(responseLaunchJob)
242243
sc = SkyCoord(ra=29.0, dec=15.0, unit=(u.degree, u.degree),
@@ -379,9 +380,7 @@ def test_query_region_async(self):
379380
connHandler.set_response(req, responsePhase)
380381
# Results response
381382
responseResultsJob = DummyResponse(200)
382-
jobDataFile = data_path('job_1.vot')
383-
jobData = utils.read_file_content(jobDataFile)
384-
responseResultsJob.set_data(method='GET', body=jobData)
383+
responseResultsJob.set_data(method='GET', body=JOB_DATA)
385384
req = "async/" + jobid + "/results/result"
386385
connHandler.set_response(req, responseResultsJob)
387386
sc = SkyCoord(ra=29.0, dec=15.0, unit=(u.degree, u.degree),
@@ -442,9 +441,7 @@ def test_cone_search_sync(self):
442441
# Launch response: we use default response because the
443442
# query contains decimals
444443
responseLaunchJob = DummyResponse(200)
445-
jobDataFile = data_path('job_1.vot')
446-
jobData = utils.read_file_content(jobDataFile)
447-
responseLaunchJob.set_data(method='POST', body=jobData)
444+
responseLaunchJob.set_data(method='POST', body=JOB_DATA)
448445
ra = 19.0
449446
dec = 20.0
450447
sc = SkyCoord(ra=ra, dec=dec, unit=(u.degree, u.degree), frame='icrs')
@@ -544,9 +541,7 @@ def test_cone_search_async(self):
544541
connHandler.set_response(req, responsePhase)
545542
# Results response
546543
responseResultsJob = DummyResponse(200)
547-
jobDataFile = data_path('job_1.vot')
548-
jobData = utils.read_file_content(jobDataFile)
549-
responseResultsJob.set_data(method='GET', body=jobData)
544+
responseResultsJob.set_data(method='GET', body=JOB_DATA)
550545
req = "async/" + jobid + "/results/result"
551546
connHandler.set_response(req, responseResultsJob)
552547
job = tap.cone_search(sc, radius, async_job=True)

astroquery/gaia/tests/test_gaiatap.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,10 @@
3030
import astropy.units as u
3131
from astropy.coordinates.sky_coordinate import SkyCoord
3232
import numpy as np
33-
from astroquery.utils.tap.xmlparser import utils
3433
from astroquery.utils.tap.core import TapPlus
3534

3635

37-
job_data = utils.read_file_content(Path(__file__).parent.joinpath("data", "job_1.vot"))
36+
job_data = (Path(__file__).with_name("data") / "job_1.vot").read_text()
3837

3938
skycoord = SkyCoord(ra=19 * u.deg, dec=20 * u.deg, frame="icrs")
4039

astroquery/utils/tap/model/tests/test_job.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,13 @@
1414
1515
1616
"""
17-
import os
17+
from pathlib import Path
18+
1819
import pytest
1920

2021
from astroquery.utils.tap.model.job import Job
2122
from astroquery.utils.tap.conn.tests.DummyConnHandler import DummyConnHandler
2223
from astroquery.utils.tap.conn.tests.DummyResponse import DummyResponse
23-
from astroquery.utils.tap.xmlparser import utils
24-
25-
26-
def data_path(filename):
27-
data_dir = os.path.join(os.path.dirname(__file__), 'data')
28-
return os.path.join(data_dir, filename)
2924

3025

3126
def test_job_basic():
@@ -53,9 +48,9 @@ def test_job_get_results(capsys, tmpdir):
5348

5449
responseCheckPhase.set_status_code(200)
5550
responseGetData = DummyResponse(500)
56-
jobContentFileName = data_path('result_1.vot')
57-
jobContent = utils.read_file_content(jobContentFileName)
58-
responseGetData.set_data(method='GET', body=jobContent)
51+
responseGetData.set_data(
52+
method="GET",
53+
body=(Path(__file__).with_name("data") / "result_1.vot").read_text())
5954
dataRequest = f"async/{jobid}/results/result"
6055
connHandler.set_response(dataRequest, responseGetData)
6156

astroquery/utils/tap/tests/test_tap.py

Lines changed: 15 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
1313
Created on 30 jun. 2016
1414
"""
15-
import os
15+
from pathlib import Path
1616
from unittest.mock import patch
1717
from urllib.parse import quote_plus, urlencode
1818

@@ -25,22 +25,17 @@
2525
from astroquery.utils.tap.conn.tests.DummyConnHandler import DummyConnHandler
2626
from astroquery.utils.tap.conn.tests.DummyResponse import DummyResponse
2727
from astroquery.utils.tap.core import TapPlus
28-
from astroquery.utils.tap.xmlparser import utils
2928
from astroquery.utils.tap import taputils
3029

3130

32-
def data_path(filename):
33-
data_dir = os.path.join(os.path.dirname(__file__), 'data')
34-
return os.path.join(data_dir, filename)
31+
TEST_DATA = {f.name: f.read_text() for f in Path(__file__).with_name("data").iterdir()}
3532

3633

3734
def test_load_tables():
3835
connHandler = DummyConnHandler()
3936
tap = TapPlus("http://test:1111/tap", connhandler=connHandler)
4037
responseLoadTable = DummyResponse(500)
41-
tableDataFile = data_path('test_tables.xml')
42-
tableData = utils.read_file_content(tableDataFile)
43-
responseLoadTable.set_data(method='GET', body=tableData)
38+
responseLoadTable.set_data(method='GET', body=TEST_DATA["test_tables.xml"])
4439
tableRequest = "tables"
4540
connHandler.set_response(tableRequest, responseLoadTable)
4641
with pytest.raises(Exception):
@@ -77,9 +72,7 @@ def test_load_tables_parameters():
7772
connHandler = DummyConnHandler()
7873
tap = TapPlus("http://test:1111/tap", connhandler=connHandler)
7974
responseLoadTable = DummyResponse(200)
80-
tableDataFile = data_path('test_tables.xml')
81-
tableData = utils.read_file_content(tableDataFile)
82-
responseLoadTable.set_data(method='GET', body=tableData)
75+
responseLoadTable.set_data(method='GET', body=TEST_DATA["test_tables.xml"])
8376
tableRequest = "tables"
8477
connHandler.set_response(tableRequest, responseLoadTable)
8578

@@ -125,9 +118,7 @@ def test_load_table():
125118
tap.load_table()
126119

127120
responseLoadTable = DummyResponse(500)
128-
tableDataFile = data_path('test_table1.xml')
129-
tableData = utils.read_file_content(tableDataFile)
130-
responseLoadTable.set_data(method='GET', body=tableData)
121+
responseLoadTable.set_data(method='GET', body=TEST_DATA["test_table1.xml"])
131122
tableSchema = "public"
132123
tableName = "table1"
133124
fullQualifiedTableName = f"{tableSchema}.{tableName}"
@@ -153,9 +144,7 @@ def test_launch_sync_job():
153144
connHandler = DummyConnHandler()
154145
tap = TapPlus("http://test:1111/tap", connhandler=connHandler)
155146
responseLaunchJob = DummyResponse(500)
156-
jobDataFile = data_path('job_1.vot')
157-
jobData = utils.read_file_content(jobDataFile)
158-
responseLaunchJob.set_data(method='POST', body=jobData)
147+
responseLaunchJob.set_data(method='POST', body=TEST_DATA["job_1.vot"])
159148
query = 'select top 5 * from table'
160149
dictTmp = {
161150
"REQUEST": "doQuery",
@@ -229,9 +218,7 @@ def test_launch_sync_job_redirect():
229218
connHandler.set_response(jobRequest, responseLaunchJob)
230219
# Results response
231220
responseResultsJob = DummyResponse(500)
232-
jobDataFile = data_path('job_1.vot')
233-
jobData = utils.read_file_content(jobDataFile)
234-
responseResultsJob.set_data(method='GET', body=jobData)
221+
responseResultsJob.set_data(method='GET', body=TEST_DATA["job_1.vot"])
235222
connHandler.set_response(resultsReq, responseResultsJob)
236223

237224
with pytest.raises(Exception):
@@ -316,9 +303,7 @@ def test_launch_async_job():
316303
connHandler.set_response(req, responsePhase)
317304
# Results response
318305
responseResultsJob = DummyResponse(500)
319-
jobDataFile = data_path('job_1.vot')
320-
jobData = utils.read_file_content(jobDataFile)
321-
responseResultsJob.set_data(method='GET', body=jobData)
306+
responseResultsJob.set_data(method='GET', body=TEST_DATA["job_1.vot"])
322307
req = f"async/{jobid}/results/result"
323308
connHandler.set_response(req, responseResultsJob)
324309

@@ -398,9 +383,7 @@ def test_start_job():
398383
connHandler.set_response(req, responsePhase)
399384
# Results response
400385
responseResultsJob = DummyResponse(200)
401-
jobDataFile = data_path('job_1.vot')
402-
jobData = utils.read_file_content(jobDataFile)
403-
responseResultsJob.set_data(method='GET', body=jobData)
386+
responseResultsJob.set_data(method='GET', body=TEST_DATA["job_1.vot"])
404387
req = f"async/{jobid}/results/result"
405388
connHandler.set_response(req, responseResultsJob)
406389

@@ -490,9 +473,7 @@ def test_job_parameters():
490473
connHandler.set_response(req, responsePhase)
491474
# Results response
492475
responseResultsJob = DummyResponse(200)
493-
jobDataFile = data_path('job_1.vot')
494-
jobData = utils.read_file_content(jobDataFile)
495-
responseResultsJob.set_data(method='GET', body=jobData)
476+
responseResultsJob.set_data(method='GET', body=TEST_DATA["job_1.vot"])
496477
req = f"async/{jobid}/results/result"
497478
connHandler.set_response(req, responseResultsJob)
498479

@@ -526,9 +507,7 @@ def test_list_async_jobs():
526507
connHandler = DummyConnHandler()
527508
tap = TapPlus("http://test:1111/tap", connhandler=connHandler)
528509
response = DummyResponse(500)
529-
jobDataFile = data_path('jobs_list.xml')
530-
jobData = utils.read_file_content(jobDataFile)
531-
response.set_data(method='GET', body=jobData)
510+
response.set_data(method='GET', body=TEST_DATA["jobs_list.xml"])
532511
req = "async"
533512
connHandler.set_response(req, response)
534513
with pytest.raises(Exception):
@@ -549,9 +528,7 @@ def test_data():
549528
data_context="data",
550529
connhandler=connHandler)
551530
responseResultsJob = DummyResponse(200)
552-
jobDataFile = data_path('job_1.vot')
553-
jobData = utils.read_file_content(jobDataFile)
554-
responseResultsJob.set_data(method='GET', body=jobData)
531+
responseResultsJob.set_data(method='GET', body=TEST_DATA["job_1.vot"])
555532
req = "?ID=1%2C2&format=votable"
556533
connHandler.set_response(req, responseResultsJob)
557534
req = "?ID=1%2C2"
@@ -585,9 +562,7 @@ def test_datalink():
585562
datalink_context="datalink",
586563
connhandler=connHandler)
587564
responseResultsJob = DummyResponse(200)
588-
jobDataFile = data_path('job_1.vot')
589-
jobData = utils.read_file_content(jobDataFile)
590-
responseResultsJob.set_data(method='GET', body=jobData)
565+
responseResultsJob.set_data(method='GET', body=TEST_DATA["job_1.vot"])
591566
req = "links?ID=1,2"
592567
connHandler.set_response(req, responseResultsJob)
593568

@@ -750,9 +725,7 @@ def test_update_user_table():
750725
connHandler = DummyConnHandler()
751726
tap = TapPlus("http://test:1111/tap", connhandler=connHandler)
752727
dummyResponse = DummyResponse(200)
753-
tableDataFile = data_path('test_table_update.xml')
754-
tableData = utils.read_file_content(tableDataFile)
755-
dummyResponse.set_data(method='GET', body=tableData)
728+
dummyResponse.set_data(method='GET', body=TEST_DATA["test_table_update.xml"])
756729
tableRequest = f"tables?tables={tableName}"
757730
connHandler.set_response(tableRequest, dummyResponse)
758731

@@ -818,9 +791,7 @@ def test_rename_table():
818791
connHandler = DummyConnHandler()
819792
tap = TapPlus("http://test:1111/tap", connhandler=connHandler)
820793
dummyResponse = DummyResponse(200)
821-
tableDataFile = data_path('test_table_rename.xml')
822-
tableData = utils.read_file_content(tableDataFile)
823-
dummyResponse.set_data(method='GET', body=tableData)
794+
dummyResponse.set_data(method='GET', body=TEST_DATA["test_table_rename.xml"])
824795

825796
with pytest.raises(Exception):
826797
tap.rename_table()

astroquery/utils/tap/xmlparser/utils.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,6 @@ def get_suitable_astropy_format(output_format):
5353
return output_format
5454

5555

56-
def read_file_content(file_path):
57-
file_handler = open(file_path, 'r')
58-
file_content = file_handler.read()
59-
file_handler.close()
60-
return file_content
61-
62-
6356
def modify_unrecognized_table_units(table):
6457
"""Modifies the units of an input table column in place
6558
"""

0 commit comments

Comments
 (0)