Пример #1
0
 def test_add_task_contrast(self):
     self.assertTrue(
         self.client.login(username=self.user.username,
                           password=self.password))
     task = Task()
     condition = Condition()
     tsk = task.create('test_add_task_contrast', {'prop': 'prop'})
     cond1 = condition.create('test_add_task_contrast_cond1',
                              {'prop': 'prop'})
     cond2 = condition.create('test_add_task_contrast_cond2',
                              {'prop': 'prop'})
     cond_names = [
         'test_add_task_contrast_cond1', 'test_add_task_contrast_cond2'
     ]
     task.link(tsk.properties['id'],
               cond1.properties['id'],
               'HASCONDITION',
               endnode_type='condition')
     task.link(tsk.properties['id'],
               cond2.properties['id'],
               'HASCONDITION',
               endnode_type='condition')
     response = self.client.get(
         reverse('add_task_contrast', kwargs={'uid': tsk.properties['id']}))
     self.assertEqual(response.status_code, 200)
     self.assertIn(response.context['conditions'][0]['condition_name'],
                   cond_names)
     self.assertIn(response.context['conditions'][1]['condition_name'],
                   cond_names)
     self.assertEqual(len(response.context['conditions']), 2)
     tsk.delete_related()
     tsk.delete()
     cond1.delete()
     cond2.delete()
Пример #2
0
def add_task_concept(request, uid):
    '''add_task_concept will add a cognitive concept to the list on a task page, making the assertion that the concept
    is associated with the task.
    :param uid: the unique id of the task, for returning to the task page when finished
    '''
    if request.method == "POST":
        relation_type = "ASSERTS"  #task --asserts-> concept
        concept_selection = request.POST.get('concept_selection', '')
        Task.link(uid,
                  concept_selection,
                  relation_type,
                  endnode_type="concept")
    return view_task(request, uid)
Пример #3
0
def add_condition(request, task_id):
    '''add_condition will add a condition associated with a task
    :param task_id: the uid of the task, to return to the correct page after creation
    '''
    if request.method == "POST":
        relation_type = "HASCONDITION"  #task --HASCONDITION-> condition
        condition_name = request.POST.get('condition_name', '')

        if condition_name != "":
            condition = Condition.create(name=condition_name)
            Task.link(task_id,
                      condition["id"],
                      relation_type,
                      endnode_type="condition")
    return view_task(request, task_id)
Пример #4
0
class GraphUtilsTest(TestCase):
    def setUp(self):
        self.task = Task()
        self.node_name = "test_name"
        self.node_properties = {'test_key': 'test_value'}
        self.graph = Graph("http://graphdb:7474/db/data/")
        self.task1 = self.task.create(
            name=self.node_name,
            properties=self.node_properties)
        self.task2 = self.task.create(
            name=self.node_name,
            properties=self.node_properties)
        condition = Condition()
        self.cond = condition.create(
            name=self.node_name,
            properties=self.node_properties)
        contrast = Contrast()
        self.cont = contrast.create(
            name=self.node_name,
            properties=self.node_properties)
        concept = Concept()
        self.con = concept.create(
            name=self.node_name,
            properties=self.node_properties)
        self.task.link(
            self.task1.properties['id'],
            self.cond.properties['id'],
            "HASCONDITION",
            endnode_type='condition')
        self.task.link(
            self.task1.properties['id'],
            self.con.properties['id'],
            "ASSERTS",
            endnode_type='concept')
        condition.link(
            self.cond.properties['id'],
            self.cont.properties['id'],
            "HASCONTRAST",
            endnode_type='contrast')
        concept.link(
            self.con.properties['id'],
            self.cont.properties['id'],
            "MEASUREDBY",
            endnode_type='contrast')

    def tearDown(self):
        self.task1.delete_related()
        self.task2.delete_related()
        self.cond.delete_related()
        self.cont.delete_related()
        self.con.delete_related()
        self.task1.delete()
        self.task2.delete()
        self.cond.delete()
        self.cont.delete()
        self.con.delete()

    def test_search(self):
        # we create 5 nodes all with the same name, this should find them all
        result = search('test_name')
        self.assertEqual(len(result), 5)

    '''
    def test_get(self):
        result = get(self.task1.properties['name'])
        self.assertEqual(len(result), 1)
    '''


    ''' ignoring gist functions for now
Пример #5
0
class NodeChildrenTest(TestCase):
    def setUp(self):
        self.task = Task()
        self.node_name = "test_name"
        self.node_properties = {'test_key': 'test_value'}
        self.graph = Graph("http://graphdb:7474/db/data/")
        self.task1 = self.task.create(
            name=self.node_name,
            properties=self.node_properties)
        self.task2 = self.task.create(
            name=self.node_name,
            properties=self.node_properties)
        condition = Condition()
        self.cond = condition.create(
            name=self.node_name,
            properties=self.node_properties)
        contrast = Contrast()
        self.cont = contrast.create(
            name=self.node_name,
            properties=self.node_properties)
        concept = Concept()
        self.con = concept.create(
            name=self.node_name,
            properties=self.node_properties)
        self.task.link(
            self.task1.properties['id'],
            self.cond.properties['id'],
            "HASCONDITION",
            endnode_type='condition')
        self.task.link(
            self.task1.properties['id'],
            self.con.properties['id'],
            "ASSERTS",
            endnode_type='concept')
        condition.link(
            self.cond.properties['id'],
            self.cont.properties['id'],
            "HASCONTRAST",
            endnode_type='contrast')
        concept.link(
            self.con.properties['id'],
            self.cont.properties['id'],
            "MEASUREDBY",
            endnode_type='contrast')

    def tearDown(self):
        self.task1.delete_related()
        self.task2.delete_related()
        self.cond.delete_related()
        self.cont.delete_related()
        self.con.delete_related()
        self.task1.delete()
        self.task2.delete()
        self.cond.delete()
        self.cont.delete()
        self.con.delete()

    def test_task_get_contrasts(self):
        contrasts = self.task.get_contrasts(self.task1.properties['id'])
        self.assertEqual(len(contrasts), 1)
        self.assertEqual(
            contrasts[0]['contrast_id'],
            self.cont.properties['id'])

    def test_task_get_conditions(self):
        conditions = self.task.get_conditions(self.task1.properties['id'])
        self.assertEqual(len(conditions), 1)
        self.assertEqual(
            conditions[0]['condition_id'],
            self.cond.properties['id'])

    def test_contrast_get_conditions(self):
        contrast = Contrast()
        conditions = contrast.get_conditions(self.cont.properties['id'])
        self.assertEqual(len(conditions), 1)
        self.assertEqual(
            conditions[0]['condition_id'],
            self.cond.properties['id'])

    def test_contrast_get_concepts(self):
        contrast = Contrast()
        concepts = contrast.get_concepts(self.cont.properties['id'])
        self.assertEqual(len(concepts), 1)
        self.assertEqual(concepts[0]['concept_id'], self.con.properties['id'])

    def test_contrast_get_tasks(self):
        contrast = Contrast()
        tasks = contrast.get_tasks(self.cont.properties['id'])
        self.assertEqual(len(tasks), 1)
        self.assertEqual(tasks[0]['task_id'], self.task1.properties['id'])