def test_format_import(self): """ Test import of format """ graph = read_web(self.web_file, auto_parse_format=False) # Default graph attributes set self.assertEqual(len(graph), 694) self.assertEqual(len(graph.edges), 1386) self.assertEqual(graph.directed, False) self.assertEqual(graph_directionality(graph), 'undirectional') self.assertEqual(graph.root, 1) self.assertTrue(isinstance(graph, GraphAxis)) # No ORM or format auto detect set, all values should be strings self.assertTrue( isinstance(graph.query_nodes({ 'key': 'ntrials' }).value, PY_STRING)) self.assertTrue( isinstance( graph.query_nodes({ 'key': 'rotate180_0' }).value, PY_STRING)) for node in graph.query_nodes({'key': 'activereslist'}): self.assertTrue(isinstance(node.value, list)) for node in graph.query_nodes({'type': 'FloatArray'}): self.assertTrue(all([isinstance(n, str) for n in node.get()]))
def setUp(self): """ Haddock test class setup Load a .web file for each test """ self.web = GraphAxis() self.web.node_tools = NodeAxisTools self.web = read_web(self.webfile, graph=self.web) self.web.orm = haddock_orm
def test_format_export(self): """ Test export of format """ graph = read_web(self.web_file) # Export graph as .web to file web = write_web(graph) outfile = os.path.join(FILEPATH, 'test_export.web') with open(outfile, 'w') as otf: otf.write(web) self.tempfiles.append(outfile) self.assertTrue(os.path.isfile(outfile)) # Import again and compare source graph graph1 = read_web(outfile) self.assertEqual(len(graph), len(graph1)) self.assertEqual(len(graph.edges), len(graph1.edges))
def test_format_import_orm(self): """ Test import of format with custom ORM classes """ web = GraphAxis() web.orm.node_mapping.add(FloatArray, lambda x: x.get('type') == 'FloatArray') web = read_web(self.web_file, graph=web) for node in web.query_nodes({'type': 'FloatArray'}): self.assertTrue(all([isinstance(n, str) for n in node.get()]))
def test_xmlrpc_get_params(self): """ Test 'getProjectParams' endpoint method. Try loading into Graph for the first two projects only """ for project in self.xmlrpc.list_projects()[:2]: web = self.xmlrpc.get_params(project) webfile = os.path.join(self.filedir, '{0}.web'.format(project)) with open(webfile, 'w') as wb: wb.write(web) self.tempfiles.append(webfile) model = read_web(web) model.node_tools = NodeAxisTools self.assertTrue(os.path.isfile(webfile)) self.assertFalse(model.empty())
def test_format_import_autoformatparse(self): """ Test import of format with automatic parsing of data types (default) """ graph = read_web(self.web_file) self.assertTrue( isinstance(graph.query_nodes({ 'key': 'ntrials' }).value, int)) self.assertTrue( isinstance(graph.query_nodes({ 'key': 'rotate180_0' }).value, bool)) for node in graph.query_nodes({'key': 'activereslist'}): self.assertTrue(isinstance(node.value, list)) for node in graph.query_nodes({'type': 'FloatArray'}): self.assertTrue(all([isinstance(n, float) for n in node.get()]))
import logging import pkg_resources from graphit.graph_io.io_web_format import read_web, write_web from graphit.graph_axis.graph_axis_mixin import NodeAxisTools from mdstudio_haddock.haddock_model import (edit_parameter_block, new_parameter_block, new_project) from mdstudio_haddock.haddock_model_classes import haddock_orm logging.basicConfig(level=logging.INFO) currpath = os.path.dirname(__file__) schemadir = pkg_resources.resource_filename('mdstudio_haddock', '/schemas/endpoints') project = read_web('test_project.web') project.orm = haddock_orm project.node_tools = NodeAxisTools project = new_project('mdstudio') # Add first partner partner1 = { 'pdb': { 'mode': 'submit', 'chain': 'A', 'code': None, 'pdbdata': open('1ckaA.pdb').read() }, 'r': { 'auto_passive':