Exemple #1
0
class ObjectTest(TestCase):

    def setUp(self):
        db = AllegroBackend("http://localhost:10035/repositories/main")
        c = Connection(db)
        self.factory = Factory(c)

    # 2.2.1. Получение объекта по идентификатору;
    def test_get_object(self):
        emma = self.factory.get_object(local.Emma)
        user = self.factory.get_class(local.User)
        self.assertEqual(emma.uri, local.Emma)
        self.assertTrue(hasattr(emma, local.knows))
        self.assertTrue(isinstance(emma, user))

    # 2.2.2. Получение всех объектов данного класса;
    def test_get_all(self):
        user = self.factory.get_class(local.User)

        emma = self.factory.get_object(local.Emma)
        elena = self.factory.get_object(local.Elena)
        sarah = self.factory.get_object(local.Sarah)

        self.assertItemsEqual([x.uri for x in user.get_objects()], [x.uri for x in [emma, sarah, elena]])

    # 2.2.3. Получение всех объектов данного класса, обладающих заданным значением некоторого свойства.
    def get_filteres_objects(self):
        kwargs = {local.knows: local.Elena}

        user = self.factory.get_class(local.User)

        emma = self.factory.get_object(local.Emma)
        sarah = self.factory.get_object(local.Sarah)

        self.assertItemsEqual(user.filter(kwargs), [emma, sarah])
        self.assertItemsEqual(user.filter(**kwargs), [emma, sarah])
Exemple #2
0
class PropertyTest(TestCase):

    def setUp(self):
        db = AllegroBackend("http://localhost:10035/repositories/main")
        c = Connection(db)
        self.factory = Factory(c)

    # 2.3.1. Получение самих свойств;
    def test_get_property(self):

        emma = self.factory.get_object(local.Emma)
        sarah = self.factory.get_object(local.Sarah)
        elena = self.factory.get_object(local.Elena)

        self.assertItemsEqual(getattr(emma, local.knows), [sarah, elena])
        self.assertRaises(AttributeError, getattr, emma, local.knowsMe)

        harry = self.factory.get_object(local.HarryPotter)
        self.assertEqual(getattr(harry, local.subSectionOf), None)

    # 2.3.2. Корректная типизация свойств;
    def test_correct_types(self):

        emma = self.factory.get_object(local.Emma)
        user = self.factory.get_class(local.User)

        self.assertItemsEqual([type(x) for x in getattr(emma, local.knows)], [user, user])

        harry = self.factory.get_object(local.HarryPotter)

        self.assertItemsEqual(getattr(harry, RDFS.label), (Literal(u"Гарри Поттер", lang='ru'),
                                                           Literal("Harry Potter", lang='en')))

    # 2.3.3. Получение области значений и определения для свойства (объект/литерал);
    def test_range(self):

        user = self.factory.get_class(local.User)

        self.assertEqual(getattr(user, local.knows), user)

    # 2.3.4. Корректная поддержка множественных значений свойств.
    def test_list_property(self):

        emma = self.factory.get_object(local.Emma)
        sarah = self.factory.get_object(local.Sarah)
        elena = self.factory.get_object(local.Elena)

        self.assertItemsEqual(getattr(emma, local.knows), [sarah, elena])