def put(self): acct = self.request.get("acct") if acct == "": self.error(400) self.response.out.write("error: acct not provided") return key = self.request.get("xmlid") if key: link = XRD.get_link_by_key(key) if link == None: self.error(404) self.response.out.write("link not found for id: " + key) return else: query = self.read_link_params() links = XRD.get_links(acct, query) if links == None or links.count() == 0: self.error(404) self.response.out.write("link not found") return elif links.count() > 1: self.error(400) self.response.out.write("more than one match found") return link = links[0] link.delete() newlink = XRD.parse_link(self.request.body) newlink.acct = acct newlink.put() xrd = XRD.make_XRD(XRD.get_links(acct), acct) if self.request.get("suppress_response_type"): self.response.headers['Content-Type'] = 'text/html' else: self.response.headers['Content-Type'] = 'application/xrd+xml' self.response.out.write(xrd)
def post(self): acct = self.request.get("acct") if acct == "": self.error(400) self.response.out.write("error: acct not provided") return type = self.request.headers['Content-Type'] if type == "application/x-www-form-urlencoded": logging.info("formencoded") params = self.read_link_params(True); logging.info("link params: " + str(params)) if params == None: # error already sent by get_link() return link = XRD.new_link(params) else: link = XRD.parse_link(self.request.body) if link == None: self.error(400) self.response.out.write("error: could not parse a link from request body") return link.acct = acct existing = XRD.get_link(acct, link.rel, link.type, link.href, link.template) if existing: # conflict self.error(409) self.response.out.write("error: a link with the same rel, type, href/template already exists") return link.put() xrd = XRD.make_XRD(XRD.get_links(acct), acct) if self.request.get("suppress_response_type"): self.response.headers['Content-Type'] = 'text/html' else: self.response.headers['Content-Type'] = 'application/xrd+xml' self.response.out.write(xrd)
def get(self): acct = self.request.get("acct") if acct == "": self.error(400) self.response.out.write("error: acct not provided") return key = self.request.get("xmlid") if key: link = XRD.get_link_by_key(key) if link == None: self.error(404) self.response.out.write("link not found for id: " + key) return else: links = [link] else: query = self.read_link_params() links = XRD.get_links(acct, query) logging.info(str(links)) xrd = XRD.make_XRD(links, acct) if self.request.get("suppress_response_type"): self.response.headers['Content-Type'] = 'text/html' else: self.response.headers['Content-Type'] = 'application/xrd+xml' self.response.out.write(xrd)
def delete(self): acct = self.request.get("acct") if acct == "": self.error(400) self.response.out.write("error: acct not provided") return key = self.request.get("xmlid") if key: link = XRD.get_link_by_key(key) if link == None: self.error(404) self.response.out.write("link not found for id: " + key) return else: links = [link] else: query = self.read_link_params() links = XRD.get_links(acct, query) if links == None or links.count() == 0: self.error(404) self.response.out.write("error: link matching your params not found") return for link in links: link.delete() xrd = XRD.make_XRD(XRD.get_links(acct), acct) if self.request.get("suppress_response_type"): self.response.headers['Content-Type'] = 'text/html' else: self.response.headers['Content-Type'] = 'application/xrd+xml' self.response.out.write(xrd)
def get(self): acct = self.request.get("acct") if acct == None: self.error(400) return links = XRD.get_links(acct) xrd = XRD.make_XRD(links, acct) # self.response.headers['Content-Type'] = 'application/xrd+xml' self.response.out.write(xrd)
def test_export_csv(self): sample_data = [ (np.arange(0, 99, 1), np.arange(200, 101, -1), './test_data.csv') # Sample data creates sample file ] for x, y, export_to in sample_data: xrd._export_csv(x, y, export_to) get_data = np.genfromtxt('./test_data.csv', delimiter=',', names=['x', 'y'], autostrip=True) # Pick a data point i = 25 # Assert the x data is as expected self.assertEqual(25, get_data['x'][i]) # Assert the y data is as expected self.assertEqual(175, get_data['y'][i]) # Destroy the test file os.remove('./test_data.csv')
def test_export_csv(self): sample_data = [(np.arange(0, 99, 1), np.arange(200, 101, -1), './test_data.csv') # Sample data creates sample file ] for x, y, export_to in sample_data: xrd._export_csv(x, y, export_to) get_data = np.genfromtxt('./test_data.csv', delimiter=',', names=['x', 'y'], autostrip=True) # Pick a data point i = 25 # Assert the x data is as expected self.assertEqual(25, get_data['x'][i]) # Assert the y data is as expected self.assertEqual(175, get_data['y'][i]) # Destroy the test file os.remove('./test_data.csv')
def callXRD(self): xrd.XRDApp()