예제 #1
0
    def test_identifiable(self):
        data = '{"id" : "' + self.dummyDonorUri + '", "properties": {"biomaterial_id": {"identifiable" : "true"}} }'
        template = schema_mock.get_template_for_json(data=data)
        self.assertTrue(
            template.lookup("donor_organism.biomaterial_id.identifiable"))

        data = '{"id" : "' + self.dummyDonorUri + '", "properties": {"foo_bar": {"user_friendly" : "Foo bar"}} }'
        template = schema_mock.get_template_for_json(data=data)
        self.assertFalse(
            template.lookup("donor_organism.foo_bar.identifiable"))

        data = '{"id" : "' + self.dummyDonorUri + '", "properties": {"process_id": {"identifiable" : "true"}} }'
        template = schema_mock.get_template_for_json(data=data)
        self.assertTrue(
            template.lookup("donor_organism.process_id.identifiable"))

        data = '{"id" : "' + self.dummyDonorUri + '", "properties": {"protocol_id": {"identifiable" : "true"}} }'
        template = schema_mock.get_template_for_json(data=data)
        self.assertTrue(
            template.lookup("donor_organism.protocol_id.identifiable"))

        data = '{"id" : "' + self.dummyDonorUri + '", "properties": {"file_name": {"identifiable" : "true"}} }'
        template = schema_mock.get_template_for_json(data=data)
        self.assertTrue(
            template.lookup("donor_organism.file_name.identifiable"))
예제 #2
0
    def test_example(self):
        data = '{"id" : "' + self.dummyDonorUri + '", "properties": {"foo_bar": {"example" : "Foo is a bar"}} }'
        template = schema_mock.get_template_for_json(data=data)
        self.assertEqual("Foo is a bar",
                         template.lookup("donor_organism.foo_bar.example"))

        data = '{"id" : "' + self.dummyDonorUri + '", "properties": {"foo_bar": {"user_friendly" : "Foo bar"}} }'
        template = schema_mock.get_template_for_json(data=data)
        self.assertIsNone(template.lookup("donor_organism.foo_bar.example"))
예제 #3
0
    def test_follows_item_refs(self):
        data = '{"id" : "' + self.dummyProjectUri + '", "properties": { "foo_bar": {"type" : "array" , "items" : {"type" : "object", "id": "' + self.dummyDonorUri + '"}} } }'
        template = schema_mock.get_template_for_json(data=data)

        self.assertEqual(
            "biomaterial",
            template.lookup("project.foo_bar.schema.domain_entity"))
예제 #4
0
    def test_get_key_for_label(self):
        data = '{"id" : "' + self.dummyDonorUri + '", "properties": {"foo_bar": {"user_friendly" : "Foo bar"}} }'
        template = schema_mock.get_template_for_json(data=data)

        tabs = template.get_tabs_config()
        self.assertEqual("donor_organism",
                         tabs.get_key_for_label("donor_organism"))
    def test_no_schemas(self):
        data = \
            f'''{{
                "id" : "{self.donorUri}", 
                "properties": {{
                    "foo_bar": {{
                        "user_friendly" : "Foo bar", 
                        "description" : "this is a foo bar", "example" : "e.g. foo"
                    }}
                }} 
            }}'''

        file = "foo.xlsx"
        spreadsheet_builder = SpreadsheetBuilder(file)
        template = schema_mock.get_template_for_json(data=data)
        spreadsheet_builder._build(template)
        spreadsheet_builder.save_workbook()

        reader = Reader("foo.xlsx")
        sheet = reader["Donor organism"]

        self.assertEqual("this is a foo bar",
                         sheet.cell(row=2, column=1).value)
        self.assertEqual("FOO BAR", sheet.cell(row=1, column=1).value)
        self.assertEqual("For example: e.g. foo",
                         sheet.cell(row=3, column=1).value.strip())
        self.assertEqual("donor_organism.foo_bar",
                         sheet.cell(row=4, column=1).value)

        # clean up
        os.remove(file)
 def test_get_key_for_label(self):
     data = f'{{"id" : "{self.dummyDonorUri}"}}'
     template = schema_mock.get_template_for_json(data=data)
     tabs = template.get_tabs_config()
     self.assertEqual("donor_organism",
                      tabs.get_key_for_label("Donor organism"))
     self.assertEqual('donor_organism',
                      tabs.get_key_for_label('donor_organism'))
    def test_get_tab_key(self):
        # given:
        project_data = f'{{"id":"{self.dummyProjectUri}"}}'
        template = schema_mock.get_template_for_json(data=project_data)

        # expect:
        self.assertEqual('project', template.get_tab_key('project'))
        self.assertEqual('project', template.get_tab_key('Project'))
예제 #8
0
    def test_schema_lookup(self):

        data = '{"id" : "' + self.dummyProjectUri + '", "properties": {"foo": "bar"} }'
        template = schema_mock.get_template_for_json(data=data)
        self.assertEqual("project",
                         template.lookup('project.schema.domain_entity'))
        self.assertEqual("project", template.lookup('project.schema.module'))
        self.assertEqual("type",
                         template.lookup('project.schema.high_level_entity'))
예제 #9
0
    def test_lookup_key_in_tab(self):
        data = '{"id" : "' + self.dummyDonorUri + '", "properties": {"foo_bar": {"user_friendly" : "Foo bar"}} }'
        template = schema_mock.get_template_for_json(data=data)

        self.assertEqual(
            "donor_organism.foo_bar",
            template.get_key_for_label("Foo bar", "Donor organism"))

        with self.assertRaises(UnknownKeyException):
            template.get_key_for_label("Bar foo", "Donor organism")
예제 #10
0
    def test_retrieveable(self):
        data = '{"id" : "' + self.dummyDonorUri + '", "properties": {"foo_bar": {"format" : "date-time"}} }'
        template = schema_mock.get_template_for_json(data=data)
        self.assertTrue(
            template.lookup("donor_organism.uuid.external_reference"))
        self.assertTrue(template.lookup("donor_organism.uuid.identifiable"))
        self.assertFalse(
            template.lookup("donor_organism.foo_bar.external_reference"))
        self.assertFalse(
            template.lookup("donor_organism.foo_bar.identifiable"))

        with self.assertRaises(UnknownKeyException):
            self.assertTrue(
                template.lookup("donor_organism.format.uuid.retrievable"))
    def test_get_tab_key_not_found(self):
        # given:
        donor_organism_data = f'{{"id": "{self.dummyDonorUri}"}}'
        template = schema_mock.get_template_for_json(data=donor_organism_data)

        # when:
        exception_raised = None
        try:
            template.get_tab_key('does not exist')
        except UnknownKeyException as exception:
            exception_raised = exception

        # then:
        self.assertIsNotNone(exception_raised)
    def test_get_tab_key_case_insensitive(self):
        # given:
        donor_organism_data = f'{{"id": "{self.dummyDonorUri}"}}'
        template = schema_mock.get_template_for_json(data=donor_organism_data)

        # and:
        self.assertEqual('donor_organism',
                         template.get_tab_key('donor_organism'))
        self.assertEqual('donor_organism',
                         template.get_tab_key('Donor organism'))
        self.assertEqual('donor_organism',
                         template.get_tab_key('donOr orGanisM'))
        self.assertEqual('donor_organism',
                         template.get_tab_key('DONOR ORGANISM'))

        # and:
        self.assertEqual('donor_organism',
                         template.get_tab_key('donor_organism'))
        self.assertEqual('donor_organism',
                         template.get_tab_key('DONOR_ORGANISM'))
    def test_referenced_property(self):
        dir_path = os.path.dirname(os.path.realpath(__file__))

        biomaterial_core_path = os.path.realpath(os.sep + os.sep + dir_path +
                                                 os.sep +
                                                 "biomaterial_core.json")
        data = '{"id" : "' + self.dummyDonorUri + '", "properties": { "biomaterial_core" : {"user_friendly": "foo", "description" : "foo bar" , "$ref" : "file:' + biomaterial_core_path + '"}}}'
        template = schema_mock.get_template_for_json(data=data)

        self.assertEqual(
            "foo",
            template.lookup("donor_organism.biomaterial_core.user_friendly"))
        self.assertEqual(
            "foo bar",
            template.lookup("donor_organism.biomaterial_core.description"))
        self.assertEqual(
            "biomaterial id",
            template.lookup(
                "donor_organism.biomaterial_core.biomaterial_id.user_friendly")
        )
        self.assertEqual(
            "a biomaterial id",
            template.lookup(
                "donor_organism.biomaterial_core.biomaterial_id.description"))
예제 #14
0
 def test_has_type_list(self):
     data = '{"id" : "' + self.dummyDonorUri + '", "properties": { "foo_bar": {"type" : "array" , "items" : {"type": "string"}} } }'
     template = schema_mock.get_template_for_json(data=data)
     self.assertEqual("string",
                      template.lookup("donor_organism.foo_bar.value_type"))
     self.assertTrue(template.lookup("donor_organism.foo_bar.multivalue"))
예제 #15
0
    def test_required_fields(self):
        data = '{"id" : "' + self.dummyDonorUri + '", "required": ["foo_bar"], "properties": { "foo_bar": {"user_friendly" : "Foo bar"}, "bar_foo" : {}} }'
        template = schema_mock.get_template_for_json(data=data)

        self.assertTrue(template.lookup("donor_organism.foo_bar.required"))
        self.assertFalse(template.lookup("donor_organism.bar_foo.required"))
예제 #16
0
 def test_unknown_key_exception(self):
     data = '{"id" : "' + self.dummyProjectUri + '", "properties": {"foo": "bar"} }'
     template = schema_mock.get_template_for_json(data=data)
     with self.assertRaises(UnknownKeyException):
         template.lookup('foo')
예제 #17
0
 def test_no_root_schema(self):
     data = '{"properties": {"foo": "bar"} }'
     with self.assertRaises(RootSchemaException):
         schema_mock.get_template_for_json(data=data)