coordComputer = {
"hour": lambda hms: utils.hmsToDeg(hms, sepChar),
"sexag": lambda dms: utils.dmsToDeg(dms, sepChar),
"mas": lambda mas: float(mas)/3.6e6,
"binary": lambda a: a,
}
def convertCoo(literalForm, literal):
return coordComputer[literalForm](literal)
def computeCoos(alpha, delta):
alphaFloat = convertCoo(alphaFormat, alpha)
deltaFloat = convertCoo(deltaFormat, delta)
return (alphaFloat, deltaFloat)+tuple(
coords.computeUnitSphereCoords(alphaFloat, deltaFloat))
alpha, delta = vars[alphaKey], vars[deltaKey]
if alpha is None or delta is None:
alphaFloat, deltaFloat, c_x, c_y, c_z = [None]*5
else:
alphaFloat, deltaFloat, c_x, c_y, c_z = computeCoos(
alpha, delta)
result["alphaFloat"] = alphaFloat
result["deltaFloat"] = deltaFloat
result["c_x"] = c_x
result["c_y"] = c_y
result["c_z"] = c_z
self.assertHasStrings("Table information", "ADQL", "Bmag", "Unit",
"The following services")
self.assertHasStrings("VOTABLE",
'value="Field RA: Required parameter \\'RA\\' missing."')
self.assertHasStrings("VOTABLE",
"value=\"Field SR: 'a' is not a valid literal for SR")
self.assertHasStrings("VOTABLE", 'encoding="base64">')
row = self.getFirstVOTableRow()
self.assertEqual(row["localid"], "210130.2+190021")
self.assertXpath('//v:INFO[@name="request"]', {
"value": "/ppmx/res/ppmx/scs/scs.xml?SR=0.006&DEC=19.006&RA=315.376"})
1.73",
" 210130")
]]>
scs/scs.xml
self.assertHasStrings("210130.2+190021\\t315.37599083")
scs/form
self.assertHasStrings(
"Query timed out (took", "PA of PM")
scs/scs.xml
self.assertXpath('//v:INFO[@ID="Error"]', {
"value": EqualingRE(r"Field query: Query timed out.*"
"Unless you know.* please contact .*@.*"),
"name": "Error"})
self.assertXpath('//v:INFO[@name="request"]', {
"value": "/ppmx/res/ppmx/scs/scs.xml?MAXREC=100&_DBOPTIONS_ORDER=angle_pm&SR=20&RA=20&_TIMEOUT=-12&DEC=20"})
/__system__/adql/query/form
315.50138527777796 19.01192305555554
',
" Query result probably incomplete due to the match limit")
]]>
/ppmx/res/ppmx/scs/form
self.assertHasStrings("PM: >0.02", "+19 10 56.82", "-114")
scs/scs.xml
self.assertXpath('//v:FIELD[@ID="alphaFloat"]', {
"datatype": "double", "ucd": "POS_EQ_RA_MAIN" })
self.assertXpath('//v:STREAM',
{None: EqualingRE(".*AAAADzA5NTk1Ni41KzE5")})
scs/scs.xml
self.assertXpath('//v:FIELD[@ID="c_z"]', {
"datatype": "float", "ucd": "pos.cartesian.z"})
scs/scs.xml
from lxml import etree as lxtree
tree = lxtree.fromstring(self.data)
sysId = tree.xpath("//v:FIELD[@name='pmRA']",
namespaces=self.XPATH_NAMESPACE_MAP)[0].get("ref")
self.assertEqual(
tree.xpath("//v:COOSYS[@ID='%s']"%sysId,
namespaces=self.XPATH_NAMESPACE_MAP)[0].get("system"),
"ICRS")
/tap/sync
from lxml import etree as lxtree
tree = lxtree.fromstring(self.data)
sysId = tree.xpath("//v:FIELD[@name='alphaFloat']",
namespaces=self.XPATH_NAMESPACE_MAP)[0].get("ref")
self.assertEqual(
tree.xpath("//v:COOSYS[@ID='%s']"%sysId,
namespaces=self.XPATH_NAMESPACE_MAP)[0].get("epoch"),
"J2000.0")
scs/coverage
self.assertHasStrings("XTENSION= 'BINTABLE'",
"PIXTYPE = 'HEALPIX '",
"MOCORDER= 0",
"\\x00\\x00\\x00\\x04")
image/png scs/coverage
self.assertHasStrings("PNG", "IDATx")