def test_generate_yaml(self): # To do - this test does not work id = "AT-3" c = SecControl(id) c_yaml = yaml.load(c.get_control_yaml()) # print c_yaml self.assertTrue(c_yaml["id"] == c.id) self.assertTrue(c_yaml["title"] == c.title) self.assertTrue(c_yaml["description"] == c.description) self.assertTrue(c_yaml["responsible"] == c.responsible) self.assertTrue(c_yaml["supplemental_guidance"] == c.supplemental_guidance)
def test_generate_yaml(self): # To do - this test does not work id = "AT-3" c = SecControl(id) c_yaml = yaml.load(c.get_control_yaml()) # print c_yaml self.assertTrue(c_yaml["id"] == c.id) self.assertTrue(c_yaml["title"] == c.title) self.assertTrue(c_yaml["description"] == c.description) self.assertTrue(c_yaml["responsible"] == c.responsible) self.assertTrue( c_yaml["supplemental_guidance"] == c.supplemental_guidance)
def controllist(self, ids="AU-4,AU-6", format="html"): cherrypy.response.headers['Content-Type'] = 'application/json' controllist = [] j = dict() y = dict() # return ids.split(',') for id in ids.split(','): id = id.upper() sc = SecControl(id) if sc.title is None and sc.description is None and format == "html": # control does not exist, return 404 print "\n*** control does not exist" raise cherrypy.HTTPError("404 Not Found", "The requested resource does not exist") controllist.append(sc.get_control_json()) j[id] = sc.get_control_json() y[id] = sc.get_control_yaml() # render yaml if format == "yaml": if sc.title is None and sc.description is None: raise cherrypy.HTTPError("404 Not Found", "The requested resource does not exist") cherrypy.response.headers['Content-Type'] = 'text/yaml' return yaml.safe_dump(y, default_flow_style=False) # render for 18F's control-masonry YAML format with separate subsections if format == "control-masonry": cherrypy.response.headers['Content-Type'] = 'text/yaml' tmpl = env.get_template('control-masonry.yaml') return tmpl.render(controllist=controllist) # render json if format == "json": cherrypy.response.headers['Content-Type'] = 'application/json' if sc.title is None and sc.description is None: raise cherrypy.HTTPError("404 Not Found", "The requested resource does not exist") return json.dumps(controllist) else: # render html cherrypy.response.headers['Content-Type'] = 'text/html' tmpl = env.get_template('controllist.html') return tmpl.render(controllist=controllist)