Example #1
0
    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()]))
Example #2
0
    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
Example #3
0
    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))
Example #4
0
    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()]))
Example #5
0
    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())
Example #6
0
    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()]))
Example #7
0
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':