Skip to content

Commit dd88fa4

Browse files
authored
use OGC test cases (#100)
1 parent b87a78e commit dd88fa4

File tree

9 files changed

+68
-167
lines changed

9 files changed

+68
-167
lines changed

lib/bald/tests/integration/CDL/ogcClassA.cdl

Lines changed: 0 additions & 10 deletions
This file was deleted.

lib/bald/tests/integration/CDL/ogcClassB.cdl

Lines changed: 0 additions & 16 deletions
This file was deleted.

lib/bald/tests/integration/CDL/ogcClassC.cdl

Lines changed: 0 additions & 10 deletions
This file was deleted.

lib/bald/tests/integration/CDL/ogcClassD.cdl

Lines changed: 0 additions & 17 deletions
This file was deleted.

lib/bald/tests/integration/TTL/ogcClassA.ttl

Lines changed: 0 additions & 22 deletions
This file was deleted.

lib/bald/tests/integration/TTL/ogcClassB.ttl

Lines changed: 0 additions & 25 deletions
This file was deleted.

lib/bald/tests/integration/TTL/ogcClassC.ttl

Lines changed: 0 additions & 24 deletions
This file was deleted.

lib/bald/tests/integration/TTL/ogcClassD.ttl

Lines changed: 0 additions & 27 deletions
This file was deleted.

lib/bald/tests/integration/test_ogc_conformance.py

Lines changed: 68 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@
44

55
import netCDF4
66
import numpy as np
7+
import requests
78

89
import bald
910
from bald.tests import BaldTestCase
1011

12+
OGCFiles = ('https://raw.githubusercontent.com/opengeospatial/netcdf-ld/'
13+
'master/standard/abstract_tests/')
14+
1115
class Test(BaldTestCase):
1216
def setUp(self):
1317
self.cdl_path = os.path.join(os.path.dirname(__file__), 'CDL')
@@ -18,62 +22,110 @@ def test_conformance_a(self):
1822
with self.temp_filename('.nc') as tfile:
1923
cdlname = 'ogcClassA.cdl'
2024
cdl_file = os.path.join(self.cdl_path, cdlname)
25+
with open(cdl_file, 'w') as cdlf:
26+
cdluri = '{}CDL/ogcClassA.cdl'.format(OGCFiles)
27+
r = requests.get(cdluri)
28+
if r.status_code != 200:
29+
raise ValueError('CDL download failed for {}'.format(cdluri))
30+
cdlf.write(r.text)
2131
subprocess.check_call(['ncgen', '-o', tfile, cdl_file])
2232
cdl_file_uri = 'http://secret.binary-array-ld.net/identity.nc'
2333
root_container = bald.load_netcdf(tfile, baseuri=cdl_file_uri, cache=self.acache)
2434
ttl = root_container.rdfgraph().serialize(format='n3').decode("utf-8")
25-
if os.environ.get('bald_update_results') is not None:
26-
with open(os.path.join(self.ttl_path, 'ogcClassA.ttl'), 'w') as sf:
27-
sf.write(ttl)
28-
with open(os.path.join(self.ttl_path, 'ogcClassA.ttl'), 'r') as sf:
35+
ttl_file = os.path.join(self.ttl_path, 'ogcClassA.ttl')
36+
with open(ttl_file, 'w') as ttlf:
37+
ttluri = '{}TTL/ogcClassA.ttl'.format(OGCFiles)
38+
r = requests.get(ttluri)
39+
if r.status_code != 200:
40+
raise ValueError('TTL download failed for {}'.format(ttluri))
41+
ttlf.write(r.text)
42+
with open(ttl_file, 'r') as sf:
2943
expected_ttl = sf.read()
44+
os.remove(ttl_file)
45+
os.remove(cdl_file)
3046
self.assertEqual(expected_ttl, ttl)
3147

3248
def test_conformance_b(self):
3349
with self.temp_filename('.nc') as tfile:
3450
cdlname = 'ogcClassB.cdl'
3551
cdl_file = os.path.join(self.cdl_path, cdlname)
52+
with open(cdl_file, 'w') as cdlf:
53+
cdluri = '{}CDL/ogcClassB.cdl'.format(OGCFiles)
54+
r = requests.get(cdluri)
55+
if r.status_code != 200:
56+
raise ValueError('CDL download failed for {}'.format(cdluri))
57+
cdlf.write(r.text)
3658
subprocess.check_call(['ncgen', '-o', tfile, cdl_file])
3759
cdl_file_uri = 'http://secret.binary-array-ld.net/prefix.nc'
3860
root_container = bald.load_netcdf(tfile, baseuri=cdl_file_uri, cache=self.acache)
3961
ttl = root_container.rdfgraph().serialize(format='n3').decode("utf-8")
40-
if os.environ.get('bald_update_results') is not None:
41-
with open(os.path.join(self.ttl_path, 'ogcClassB.ttl'), 'w') as sf:
42-
sf.write(ttl)
43-
with open(os.path.join(self.ttl_path, 'ogcClassB.ttl'), 'r') as sf:
62+
ttl_file = os.path.join(self.ttl_path, 'ogcClassA.ttl')
63+
with open(ttl_file, 'w') as ttlf:
64+
ttluri = '{}TTL/ogcClassB.ttl'.format(OGCFiles)
65+
r = requests.get(ttluri)
66+
if r.status_code != 200:
67+
raise ValueError('TTL download failed for {}'.format(ttluri))
68+
ttlf.write(r.text)
69+
with open(ttl_file, 'r') as sf:
4470
expected_ttl = sf.read()
71+
os.remove(ttl_file)
72+
os.remove(cdl_file)
4573
self.assertEqual(expected_ttl, ttl)
4674

4775
def test_conformance_c(self):
4876
with self.temp_filename('.nc') as tfile:
4977
cdlname = 'ogcClassC.cdl'
5078
cdl_file = os.path.join(self.cdl_path, cdlname)
79+
with open(cdl_file, 'w') as cdlf:
80+
cdluri = '{}CDL/ogcClassC.cdl'.format(OGCFiles)
81+
r = requests.get(cdluri)
82+
if r.status_code != 200:
83+
raise ValueError('CDL download failed for {}'.format(cdluri))
84+
cdlf.write(r.text)
5185
subprocess.check_call(['ncgen', '-o', tfile, cdl_file])
5286
cdl_file_uri = 'http://secret.binary-array-ld.net/alias.nc'
5387
alias_dict = {'NetCDF': 'http://def.scitools.org.uk/NetCDF'}
5488
root_container = bald.load_netcdf(tfile, baseuri=cdl_file_uri,
5589
alias_dict=alias_dict, cache=self.acache)
5690
ttl = root_container.rdfgraph().serialize(format='n3').decode("utf-8")
57-
if os.environ.get('bald_update_results') is not None:
58-
with open(os.path.join(self.ttl_path, 'ogcClassC.ttl'), 'w') as sf:
59-
sf.write(ttl)
60-
with open(os.path.join(self.ttl_path, 'ogcClassC.ttl'), 'r') as sf:
91+
ttl_file = os.path.join(self.ttl_path, 'ogcClassA.ttl')
92+
with open(ttl_file, 'w') as ttlf:
93+
ttluri = '{}TTL/ogcClassC.ttl'.format(OGCFiles)
94+
r = requests.get(ttluri)
95+
if r.status_code != 200:
96+
raise ValueError('TTL download failed for {}'.format(ttluri))
97+
ttlf.write(r.text)
98+
with open(ttl_file, 'r') as sf:
6199
expected_ttl = sf.read()
100+
os.remove(ttl_file)
101+
os.remove(cdl_file)
62102
self.assertEqual(expected_ttl, ttl)
63103

64104
def test_conformance_d(self):
65105
with self.temp_filename('.nc') as tfile:
66106
cdlname = 'ogcClassD.cdl'
67107
cdl_file = os.path.join(self.cdl_path, cdlname)
108+
with open(cdl_file, 'w') as cdlf:
109+
cdluri = '{}CDL/ogcClassD.cdl'.format(OGCFiles)
110+
r = requests.get(cdluri)
111+
if r.status_code != 200:
112+
raise ValueError('CDL download failed for {}'.format(cdluri))
113+
cdlf.write(r.text)
68114
subprocess.check_call(['ncgen', '-o', tfile, cdl_file])
69115
cdl_file_uri = 'http://secret.binary-array-ld.net/attributes.nc'
70116
alias_dict = {'NetCDF': 'http://def.scitools.org.uk/NetCDF'}
71117
root_container = bald.load_netcdf(tfile, baseuri=cdl_file_uri,
72118
alias_dict=alias_dict, cache=self.acache)
73119
ttl = root_container.rdfgraph().serialize(format='n3').decode("utf-8")
74-
if os.environ.get('bald_update_results') is not None:
75-
with open(os.path.join(self.ttl_path, 'ogcClassD.ttl'), 'w') as sf:
76-
sf.write(ttl)
77-
with open(os.path.join(self.ttl_path, 'ogcClassD.ttl'), 'r') as sf:
120+
ttl_file = os.path.join(self.ttl_path, 'ogcClassA.ttl')
121+
with open(ttl_file, 'w') as ttlf:
122+
ttluri = '{}TTL/ogcClassD.ttl'.format(OGCFiles)
123+
r = requests.get(ttluri)
124+
if r.status_code != 200:
125+
raise ValueError('TTL download failed for {}'.format(ttluri))
126+
ttlf.write(r.text)
127+
with open(ttl_file, 'r') as sf:
78128
expected_ttl = sf.read()
129+
os.remove(ttl_file)
130+
os.remove(cdl_file)
79131
self.assertEqual(expected_ttl, ttl)

0 commit comments

Comments
 (0)