Exemple #1
0
	def testSyncWavelengthForHeadRequest(self):
		settings.DEBUG = DEBUG
		sql = "SELECT All WHERE RadTransWavelength > 0 AND RadTransWavelength < 4000"
		self.queryDict["QUERY"] = sql
		self.request.method = 'HEAD'
		self.request.REQUEST = self.queryDict

		response = views.sync(self.request)
		headers = response.items()
		headers.pop(1)

		self.assertEquals(200, response.status_code)
		expected_headers = [
			('VAMDC-COUNT-SPECIES', '1'),
			('VAMDC-COUNT-STATES', '133'),
			('Access-Control-Expose-Headers', 'VAMDC-COUNT-SOURCES, VAMDC-COUNT-MOLECULES, VAMDC-COUNT-SPECIES, VAMDC-COUNT-STATES, VAMDC-COUNT-RADIATIVE, VAMDC-TRUNCATED, VAMDC-APPROX-SIZE'),
			('VAMDC-COUNT-MOLECULES', '1'),
			('VAMDC-COUNT-SOURCES', '3'),
			('Access-Control-Allow-Origin', '*'),
			('Last-Modified', 'Thu, 05 Nov 2015 18:00:00 GMT'),
			('VAMDC-APPROX-SIZE', '0.110'),
			('VAMDC-COUNT-RADIATIVE', '168'),
			('Content-Type', 'text/xml'),
			('VAMDC-TRUNCATED', '100')
		]

		self.assertSequenceEqual(expected_headers, headers)
		self.assertEquals('', response.content)
Exemple #2
0
    def testAddRules(self):
        rulesParser = RulesParser()
        # 2.6 set([]) ; 2.7 {}
        rulesParser.addRules = set([
            Rule(NODEID, "abs(nltcs:J + nltcs:Ka) <= 11"),
            Rule(NODEID, "abs(nltcs:Ka + nltcs:v1) <= pow(nltcs:v2, nltcs:Kc)")
        ])
        queryfunc.rules = rulesParser.getRules()

        self.request.REQUEST = self.queryDict
        content = views.sync(self.request).content
        objTree = objectify.fromstring(content)
        verificationXSD.assertValid(objTree)

        numberElements = objTree.xpath('//xsams:NumberOfVerificationByRule',
                                       namespaces={"xsams": XSAMS_NS})
        self.assertEquals(5, len(numberElements))

        numberElements = objTree.xpath(
            '//xsams:NumberOfVerificationByRule[@name = "' + NODEID +
            'RuleS01" or @name = "' + NODEID + 'RuleS02"]',
            namespaces={"xsams": XSAMS_NS})
        self.assertEquals(2, len(numberElements))
        for numberElement in numberElements:
            self.assertEquals("1", numberElement.attrib["correct"])
            self.assertEquals("2", numberElement.attrib["incorrect"])
Exemple #3
0
	def testSyncSelectSaga2_nh3(self):
		settings.DEBUG = DEBUG
		sql = "SELECT All WHERE ((Inchi='InChI=1S/H3N/h1H3'  AND RadTransWavenumber > 4300 AND RadTransWavenumber < 4301) AND MethodCategory = 'experiment')"
		self.queryDict["QUERY"] = sql
		self.request.REQUEST = self.queryDict

		content = views.sync(self.request).content
		objTree = objectify.fromstring(content)
		xsamsXSD.assertValid(objTree)
Exemple #4
0
	def testSyncSelectSaga2_nh3(self):
		settings.DEBUG = DEBUG
		sql = "SELECT All WHERE ((Inchi='InChI=1S/H3N/h1H3'  AND RadTransWavenumber > 4300 AND RadTransWavenumber < 4301) AND MethodCategory = 'experiment')"
		self.queryDict["QUERY"] = sql
		self.request.REQUEST = self.queryDict

		response = views.sync(self.request)
		self.assertEquals(204, response.status_code)
		self.assertEquals('', response.content)
Exemple #5
0
	def testNoData(self):
		settings.DEBUG = DEBUG
		sql = "SELECT All WHERE RadTransWavelength > 0 AND RadTransWavelength < 0"
		self.queryDict["QUERY"] = sql
		self.request.REQUEST = self.queryDict

		response = views.sync(self.request)
		self.assertEquals(204, response.status_code)
		self.assertEquals('', response.content)
Exemple #6
0
    def testSyncSelectSaga2_nh3(self):
        settings.DEBUG = DEBUG
        sql = "SELECT All WHERE ((Inchi='InChI=1S/H3N/h1H3'  AND RadTransWavenumber > 4300 AND RadTransWavenumber < 4301) AND MethodCategory = 'experiment')"
        self.queryDict["QUERY"] = sql
        self.request.REQUEST = self.queryDict

        content = views.sync(self.request).content
        objTree = objectify.fromstring(content)
        xsamsXSD.assertValid(objTree)
Exemple #7
0
    def testSyncWavelength(self):
        settings.DEBUG = DEBUG
        sql = "SELECT All WHERE RadTransWavelength > 0 AND RadTransWavelength < 4000"
        self.queryDict["QUERY"] = sql
        self.request.REQUEST = self.queryDict

        content = views.sync(self.request).content
        objTree = objectify.fromstring(content)
        removeSelfSource(objTree)
        actual = etree.tostring(objTree, pretty_print=True)
        xsamsXSD.assertValid(objTree)
	def testSyncWavelength(self):
		settings.DEBUG = DEBUG
		sql = "SELECT All WHERE RadTransWavelength > 0 AND RadTransWavelength < 4000"
		self.queryDict["QUERY"] = sql
		self.request.REQUEST = self.queryDict

		content = views.sync(self.request).content
		objTree = objectify.fromstring(content)
		removeSelfSource(objTree)
		actual = etree.tostring(objTree, pretty_print=True)
		xsamsXSD.assertValid(objTree)
Exemple #9
0
def getBigFile():
	settings.DEBUG = True
	query = 'LANG=VSS1&FORMAT=VERIFICATION&QUERY=SELECT All WHERE InChI =\'InChI=1S/H2O/h1H2/i/hD\''

	request = HttpRequest()
	request.META["SERVER_NAME"] = 'localhost'
	request.META["SERVER_PORT"] = '80'
	request.META["REMOTE_ADDR"] = '127.0.0.1'
	request.META["QUERY_STRING"] = query

	request.REQUEST = toDict(QueryDict(query))
	return views.sync(request).content
Exemple #10
0
	def testGOOD(self):
		settings.DEBUG = DEBUG
		self.queryDict["RETURN"] = 'GOOD'
		self.request.REQUEST = self.queryDict
		content = views.sync(self.request).content
		objTree = objectify.fromstring(content)
		removeSelfSource(objTree)
		actual = etree.tostring(objTree, pretty_print=True)
		verificationXSD.assertValid(objTree)

		expected = etree.tostring(objectify.fromstring(open(settings.BASE_PATH + "/nodes/" + settings.NODENAME + "/test/verGOOD.xml").read()), pretty_print=True)
		self.assertEquals(expected, actual)
Exemple #11
0
	def testDelRules(self):
		rulesParser = RulesParser()
		rulesParser.delRules = set([Rule("nltcsRuleS01", None), Rule("nltcsRuleT02", None)])
		queryfunc.rules = rulesParser.getRules()

		self.request.REQUEST = self.queryDict
		content = views.sync(self.request).content
		objTree = objectify.fromstring(content)
		verificationXSD.assertValid(objTree)

		numberElements = objTree.xpath('//xsams:NumberOfVerificationByRule', namespaces={"xsams":XSAMS_NS})
		self.assertEquals(1, len(numberElements))
Exemple #12
0
	def testSelectSpecies(self):
		settings.DEBUG = DEBUG
		sql = "SELECT SPECIES"
		self.queryDict["QUERY"] = sql
		self.request.REQUEST = self.queryDict

		content = views.sync(self.request).content
		objTree = objectify.fromstring(content)
		removeSelfSource(objTree)
		actual = etree.tostring(objTree, pretty_print=True)
		# print(actual)
		xsamsXSD.assertValid(objTree)
Exemple #13
0
	def testUseOnlyRules(self):
		rulesParser = RulesParser()
		rulesParser.useRules = {Rule("nltcsRuleT02", None), Rule(NODEID, "abs(nltcs:J + nltcs:Ka) <= 11")}
		queryfunc.rules = rulesParser.getRules()

		self.request.REQUEST = self.queryDict
		content = views.sync(self.request).content
		objTree = objectify.fromstring(content)
		verificationXSD.assertValid(objTree)

		numberElements = objTree.xpath('//xsams:NumberOfVerificationByRule', namespaces={"xsams":XSAMS_NS})
		self.assertEquals(2, len(numberElements))
Exemple #14
0
	def testSyncSelectMoleculeInchiKey(self):
		settings.DEBUG = DEBUG
		sql = "SELECT All WHERE (InchiKey='RWSOTUBLDIXVET-IQRQJSDFSA-N'  AND RadTransWavenumber > 40 AND RadTransWavenumber < 45) OR (Inchi IN ('InChI=1S/H2O/h1H2') AND RadTransWavenumber > 1239.2185 AND RadTransWavenumber < 1239.2191)"
		self.queryDict["QUERY"] = sql
		self.request.REQUEST = self.queryDict

		objTree = objectify.fromstring(views.sync(self.request).content)
		removeSelfSource(objTree)
		actual = etree.tostring(objTree, pretty_print=True)
		xsamsXSD.assertValid(objTree)

		expected = etree.tostring(objectify.fromstring(open(settings.BASE_PATH + "/nodes/" + settings.NODENAME + "/test/InchiKey.xml").read()), pretty_print=True)
		self.assertEquals(expected, actual)
Exemple #15
0
	def testSyncSelectMoleculeEnergy(self):
		settings.DEBUG = DEBUG
		sql = "SELECT All WHERE StateEnergy > 9895.327 AND StateEnergy < 9895.328"
		self.queryDict["QUERY"] = sql
		self.request.REQUEST = self.queryDict

		content = views.sync(self.request).content
		objTree = objectify.fromstring(content)
		removeSelfSource(objTree)
		actual = etree.tostring(objTree, pretty_print=True)
		xsamsXSD.assertValid(objTree)

		expected = etree.tostring(objectify.fromstring(open(settings.BASE_PATH + "/nodes/" + settings.NODENAME + "/test/Energy.xml").read()), pretty_print=True)
		self.assertEquals(expected, actual)
Exemple #16
0
	def testSyncSelectSaga2_co(self):
		settings.DEBUG = DEBUG
		sql = "SELECT All WHERE ((Inchi='InChI=1S/CO/c1-2'  AND RadTransWavenumber > 2135.3135 AND RadTransWavenumber < 2135.3137) AND MethodCategory = 'experiment')"
		self.queryDict["QUERY"] = sql
		self.request.REQUEST = self.queryDict

		content = views.sync(self.request).content
		objTree = objectify.fromstring(content)
		removeSelfSource(objTree)
		actual = etree.tostring(objTree, pretty_print=True)
		xsamsXSD.assertValid(objTree)

		expected = etree.tostring(objectify.fromstring(open(settings.BASE_PATH + "/nodes/" + settings.NODENAME + "/test/co.xml").read()), pretty_print=True)
		self.assertEquals(expected, actual)
Exemple #17
0
	def testSyncSelectMoleculeH_17OD_W_Int(self):
		settings.DEBUG = DEBUG
		sql = "SELECT All WHERE ((Inchi='InChI=1S/H2O/h1H2/i1+1/hD'  AND RadTransWavenumber > 1234.23 AND RadTransWavenumber < 1244.24 AND RadTransProbabilityIdealisedIntensity < 1) AND MethodCategory = 'experiment')"
		self.queryDict["QUERY"] = sql
		self.request.REQUEST = self.queryDict

		content = views.sync(self.request).content
		objTree = objectify.fromstring(content)
		removeSelfSource(objTree)
		actual = etree.tostring(objTree, pretty_print=True)
		xsamsXSD.assertValid(objTree)

		expected = etree.tostring(objectify.fromstring(open(settings.BASE_PATH + "/nodes/" + settings.NODENAME + "/test/H_17OD_W_Int.xml").read()), pretty_print=True)
		self.assertEquals(expected, actual)
Exemple #18
0
def getBigFile():
	settings.DEBUG = True
	#query = 'LANG=VSS1&FORMAT=VERIFICATION&QUERY=SELECT All WHERE InChI =\'InChI=1S/H2O/h1H2/i/hD\''
	#query = "LANG=VSS1&FORMAT=XSAMS&QUERY=select * where (RadTransWavenumber >= 1239.0 AND RadTransWavenumber <= 1240.0) AND ((InchiKey IN ('A', 'XLYOFNOQVPJJNP-DYCDLGHISA-N','XLYOFNOQVPJJNP-DQGQKLTASA-N')))"
	query = "LANG=VSS1&FORMAT=VERIFICATION&QUERY=select * where (RadTransWavenumber >= 1239.0 AND RadTransWavenumber <= 1240.0) AND ((InchiKey IN ('A', 'XLYOFNOQVPJJNP-DYCDLGHISA-N','XLYOFNOQVPJJNP-DQGQKLTASA-N')))"

	request = HttpRequest()
	request.META["SERVER_NAME"] = 'localhost'
	request.META["SERVER_PORT"] = '80'
	request.META["REMOTE_ADDR"] = '127.0.0.1'
	request.META["QUERY_STRING"] = query

	request.REQUEST = toDict(QueryDict(query))

	return views.sync(request).content
Exemple #19
0
def getBigFile():
    settings.DEBUG = True
    #query = 'LANG=VSS1&FORMAT=VERIFICATION&QUERY=SELECT All WHERE InChI =\'InChI=1S/H2O/h1H2/i/hD\''
    #query = "LANG=VSS1&FORMAT=XSAMS&QUERY=select * where (RadTransWavenumber >= 1239.0 AND RadTransWavenumber <= 1240.0) AND ((InchiKey IN ('A', 'XLYOFNOQVPJJNP-DYCDLGHISA-N','XLYOFNOQVPJJNP-DQGQKLTASA-N')))"
    query = "LANG=VSS1&FORMAT=VERIFICATION&QUERY=select * where (RadTransWavenumber >= 1239.0 AND RadTransWavenumber <= 1240.0) AND ((InchiKey IN ('A', 'XLYOFNOQVPJJNP-DYCDLGHISA-N','XLYOFNOQVPJJNP-DQGQKLTASA-N')))"

    request = HttpRequest()
    request.META["SERVER_NAME"] = 'localhost'
    request.META["SERVER_PORT"] = '80'
    request.META["REMOTE_ADDR"] = '127.0.0.1'
    request.META["QUERY_STRING"] = query

    request.REQUEST = toDict(QueryDict(query))

    return views.sync(request).content
Exemple #20
0
    def testGOOD(self):
        settings.DEBUG = DEBUG
        self.queryDict["RETURN"] = 'GOOD'
        self.request.REQUEST = self.queryDict
        content = views.sync(self.request).content
        objTree = objectify.fromstring(content)
        removeSelfSource(objTree)
        actual = etree.tostring(objTree, pretty_print=True)
        verificationXSD.assertValid(objTree)

        expected = etree.tostring(objectify.fromstring(
            open(settings.BASE_PATH + "/nodes/" + settings.NODENAME +
                 "/test/verGOOD.xml").read()),
                                  pretty_print=True)
        self.assertEquals(expected, actual)
Exemple #21
0
    def testDelRules(self):
        rulesParser = RulesParser()
        rulesParser.delRules = set(
            [Rule("nltcsRuleS01", None),
             Rule("nltcsRuleT02", None)])
        queryfunc.rules = rulesParser.getRules()

        self.request.REQUEST = self.queryDict
        content = views.sync(self.request).content
        objTree = objectify.fromstring(content)
        verificationXSD.assertValid(objTree)

        numberElements = objTree.xpath('//xsams:NumberOfVerificationByRule',
                                       namespaces={"xsams": XSAMS_NS})
        self.assertEquals(1, len(numberElements))
Exemple #22
0
    def testSyncSelectMoleculeInchiKey(self):
        settings.DEBUG = DEBUG
        sql = "SELECT All WHERE (InchiKey='RWSOTUBLDIXVET-IQRQJSDFSA-N'  AND RadTransWavenumber > 40 AND RadTransWavenumber < 45) OR (Inchi IN ('InChI=1S/H2O/h1H2') AND RadTransWavenumber > 1239.2185 AND RadTransWavenumber < 1239.2191)"
        self.queryDict["QUERY"] = sql
        self.request.REQUEST = self.queryDict

        objTree = objectify.fromstring(views.sync(self.request).content)
        removeSelfSource(objTree)
        actual = etree.tostring(objTree, pretty_print=True)
        xsamsXSD.assertValid(objTree)

        expected = etree.tostring(objectify.fromstring(
            open(settings.BASE_PATH + "/nodes/" + settings.NODENAME +
                 "/test/InchiKey.xml").read()),
                                  pretty_print=True)
        self.assertEquals(expected, actual)
Exemple #23
0
    def testSyncSelectMoleculeH_17OD_W_Int(self):
        settings.DEBUG = DEBUG
        sql = "SELECT All WHERE ((Inchi='InChI=1S/H2O/h1H2/i1+1/hD'  AND RadTransWavenumber > 1234.23 AND RadTransWavenumber < 1244.24 AND RadTransProbabilityIdealisedIntensity < 1) AND MethodCategory = 'experiment')"
        self.queryDict["QUERY"] = sql
        self.request.REQUEST = self.queryDict

        content = views.sync(self.request).content
        objTree = objectify.fromstring(content)
        removeSelfSource(objTree)
        actual = etree.tostring(objTree, pretty_print=True)
        xsamsXSD.assertValid(objTree)

        expected = etree.tostring(objectify.fromstring(
            open(settings.BASE_PATH + "/nodes/" + settings.NODENAME +
                 "/test/H_17OD_W_Int.xml").read()),
                                  pretty_print=True)
        self.assertEquals(expected, actual)
Exemple #24
0
    def testSyncSelectMoleculeEnergy(self):
        settings.DEBUG = DEBUG
        sql = "SELECT All WHERE StateEnergy > 9895.327 AND StateEnergy < 9895.328"
        self.queryDict["QUERY"] = sql
        self.request.REQUEST = self.queryDict

        content = views.sync(self.request).content
        objTree = objectify.fromstring(content)
        removeSelfSource(objTree)
        actual = etree.tostring(objTree, pretty_print=True)
        xsamsXSD.assertValid(objTree)

        expected = etree.tostring(objectify.fromstring(
            open(settings.BASE_PATH + "/nodes/" + settings.NODENAME +
                 "/test/Energy.xml").read()),
                                  pretty_print=True)
        self.assertEquals(expected, actual)
Exemple #25
0
    def testSyncSelectSaga2_co(self):
        settings.DEBUG = DEBUG
        sql = "SELECT All WHERE ((Inchi='InChI=1S/CO/c1-2'  AND RadTransWavenumber > 2135.3135 AND RadTransWavenumber < 2135.3137) AND MethodCategory = 'experiment')"
        self.queryDict["QUERY"] = sql
        self.request.REQUEST = self.queryDict

        content = views.sync(self.request).content
        objTree = objectify.fromstring(content)
        removeSelfSource(objTree)
        actual = etree.tostring(objTree, pretty_print=True)
        xsamsXSD.assertValid(objTree)

        expected = etree.tostring(objectify.fromstring(
            open(settings.BASE_PATH + "/nodes/" + settings.NODENAME +
                 "/test/co.xml").read()),
                                  pretty_print=True)
        self.assertEquals(expected, actual)
Exemple #26
0
	def testAddRules(self):
		rulesParser = RulesParser()
		rulesParser.addRules = {Rule(NODEID, "abs(nltcs:J + nltcs:Ka) <= 11"), Rule(NODEID, "abs(nltcs:Ka + nltcs:v1) <= pow(nltcs:v2, nltcs:Kc)")}
		queryfunc.rules = rulesParser.getRules()

		self.request.REQUEST = self.queryDict
		content = views.sync(self.request).content
		objTree = objectify.fromstring(content)
		verificationXSD.assertValid(objTree)

		numberElements = objTree.xpath('//xsams:NumberOfVerificationByRule', namespaces={"xsams":XSAMS_NS})
		self.assertEquals(5, len(numberElements))

		numberElements = objTree.xpath('//xsams:NumberOfVerificationByRule[@name = "' + NODEID + 'RuleS01" or @name = "' + NODEID + 'RuleS02"]', namespaces={"xsams":XSAMS_NS})
		self.assertEquals(2, len(numberElements))
		for numberElement in numberElements:
			self.assertEquals("1", numberElement.attrib["correct"])
			self.assertEquals("2", numberElement.attrib["incorrect"])