oldaplib 0.3.1__py3-none-any.whl → 0.3.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- oldaplib/src/datamodel.py +19 -19
- oldaplib/src/enums/haspropertyattr.py +2 -1
- oldaplib/src/hasproperty.py +22 -23
- oldaplib/src/helpers/Notify.py +7 -6
- oldaplib/src/helpers/irincname.py +50 -4
- oldaplib/src/helpers/observable_dict.py +4 -2
- oldaplib/src/helpers/query_processor.py +2 -1
- oldaplib/src/helpers/tools.py +11 -11
- oldaplib/src/model.py +1 -1
- oldaplib/src/objectfactory.py +22 -22
- oldaplib/src/oldaplist.py +1 -1
- oldaplib/src/permissionset.py +15 -10
- oldaplib/src/propertyclass.py +26 -27
- oldaplib/src/resourceclass.py +88 -86
- oldaplib/src/version.py +1 -1
- oldaplib/src/xsd/xsd_qname.py +21 -0
- oldaplib/test/test_datamodel.py +168 -169
- oldaplib/test/test_hasproperty.py +65 -65
- oldaplib/test/test_objectfactory.py +1 -1
- oldaplib/test/test_observable_dict.py +10 -0
- oldaplib/test/test_oldaplist.py +9 -9
- oldaplib/test/test_oldaplistnode.py +30 -30
- oldaplib/test/test_permissionset.py +14 -14
- oldaplib/test/test_project.py +4 -4
- oldaplib/test/test_propertyclass.py +89 -91
- oldaplib/test/test_resourceclass.py +342 -336
- oldaplib/test/test_user.py +8 -8
- {oldaplib-0.3.1.dist-info → oldaplib-0.3.2.dist-info}/METADATA +1 -1
- {oldaplib-0.3.1.dist-info → oldaplib-0.3.2.dist-info}/RECORD +30 -30
- {oldaplib-0.3.1.dist-info → oldaplib-0.3.2.dist-info}/WHEEL +0 -0
oldaplib/test/test_datamodel.py
CHANGED
|
@@ -128,7 +128,7 @@ class TestDataModel(unittest.TestCase):
|
|
|
128
128
|
#
|
|
129
129
|
comment = PropertyClass(con=self._connection,
|
|
130
130
|
project=project,
|
|
131
|
-
property_class_iri=
|
|
131
|
+
property_class_iri=Xsd_QName(f'{dm_name}:comment'),
|
|
132
132
|
datatype=XsdDatatypes.langString,
|
|
133
133
|
name=LangString(["Comment@en", "Kommentar@de"]),
|
|
134
134
|
uniqueLang=Xsd_boolean(True),
|
|
@@ -140,7 +140,7 @@ class TestDataModel(unittest.TestCase):
|
|
|
140
140
|
#
|
|
141
141
|
title = PropertyClass(con=self._connection,
|
|
142
142
|
project=project,
|
|
143
|
-
property_class_iri=
|
|
143
|
+
property_class_iri=Xsd_QName(f'{dm_name}:title'),
|
|
144
144
|
datatype=XsdDatatypes.langString,
|
|
145
145
|
name=LangString(["Title@en", "Titel@de"]),
|
|
146
146
|
description=LangString(["Title of book@en", "Titel des Buches@de"]),
|
|
@@ -149,14 +149,14 @@ class TestDataModel(unittest.TestCase):
|
|
|
149
149
|
|
|
150
150
|
authors = PropertyClass(con=self._connection,
|
|
151
151
|
project=project,
|
|
152
|
-
property_class_iri=
|
|
152
|
+
property_class_iri=Xsd_QName(f'{dm_name}:authors'),
|
|
153
153
|
toClass=Iri('oldap:Person'),
|
|
154
154
|
name=LangString(["Author(s)@en", "Autor(en)@de"]),
|
|
155
155
|
description=LangString(["Writers of the Book@en", "Schreiber*innen des Buchs@de"]))
|
|
156
156
|
|
|
157
157
|
book = ResourceClass(con=self._connection,
|
|
158
158
|
project=project,
|
|
159
|
-
owlclass_iri=
|
|
159
|
+
owlclass_iri=Xsd_QName(f'{dm_name}:Book'),
|
|
160
160
|
label=LangString(["Book@en", "Buch@de"]),
|
|
161
161
|
comment=LangString("Ein Buch mit Seiten@en"),
|
|
162
162
|
closed=Xsd_boolean(True),
|
|
@@ -167,19 +167,19 @@ class TestDataModel(unittest.TestCase):
|
|
|
167
167
|
|
|
168
168
|
pagenum = PropertyClass(con=self._connection,
|
|
169
169
|
project=project,
|
|
170
|
-
property_class_iri=
|
|
170
|
+
property_class_iri=Xsd_QName(f'{dm_name}:pagenum'),
|
|
171
171
|
datatype=XsdDatatypes.int,
|
|
172
172
|
name=LangString(["Pagenumber@en", "Seitennummer@de"]))
|
|
173
173
|
|
|
174
174
|
inbook = PropertyClass(con=self._connection,
|
|
175
175
|
project=project,
|
|
176
|
-
property_class_iri=
|
|
176
|
+
property_class_iri=Xsd_QName(f'{dm_name}:inbook'),
|
|
177
177
|
toClass=Iri(f'{dm_name}:Book'),
|
|
178
178
|
name=LangString(["Pagenumber@en", "Seitennummer@de"]))
|
|
179
179
|
|
|
180
180
|
page = ResourceClass(con=self._connection,
|
|
181
181
|
project=project,
|
|
182
|
-
owlclass_iri=
|
|
182
|
+
owlclass_iri=Xsd_QName(f'{dm_name}:Page'),
|
|
183
183
|
label=LangString(["Page@en", "Seite@de"]),
|
|
184
184
|
comment=LangString("Page of a book@en"),
|
|
185
185
|
closed=Xsd_boolean(True),
|
|
@@ -203,8 +203,8 @@ class TestDataModel(unittest.TestCase):
|
|
|
203
203
|
|
|
204
204
|
self.assertFalse(dma is dmb)
|
|
205
205
|
|
|
206
|
-
p1a = dma[
|
|
207
|
-
p1b = dmb[
|
|
206
|
+
p1a = dma[Xsd_QName(f'{dm_name}:comment')]
|
|
207
|
+
p1b = dmb[Xsd_QName(f'{dm_name}:comment')]
|
|
208
208
|
self.assertEqual(p1a.datatype, p1b.datatype)
|
|
209
209
|
self.assertEqual(p1a.name, p1b.name)
|
|
210
210
|
self.assertFalse(p1a.name is p1b.name)
|
|
@@ -212,12 +212,12 @@ class TestDataModel(unittest.TestCase):
|
|
|
212
212
|
self.assertFalse(p1a.languageIn is p1b.languageIn)
|
|
213
213
|
self.assertTrue(p1b.uniqueLang)
|
|
214
214
|
|
|
215
|
-
r1a = dma[
|
|
216
|
-
r1b = dmb[
|
|
215
|
+
r1a = dma[Xsd_QName(f'{dm_name}:Book')]
|
|
216
|
+
r1b = dmb[Xsd_QName(f'{dm_name}:Book')]
|
|
217
217
|
self.assertFalse(r1a is r1b)
|
|
218
218
|
|
|
219
|
-
r1p1a = r1a[
|
|
220
|
-
r1p1b = r1b[
|
|
219
|
+
r1p1a = r1a[Xsd_QName(f'{dm_name}:title')]
|
|
220
|
+
r1p1b = r1b[Xsd_QName(f'{dm_name}:title')]
|
|
221
221
|
self.assertFalse(r1p1a is r1p1b)
|
|
222
222
|
self.assertEqual(r1p1a.prop.internal, r1p1b.prop.internal)
|
|
223
223
|
self.assertFalse(r1p1a.prop.internal is r1p1b.prop.internal)
|
|
@@ -232,8 +232,8 @@ class TestDataModel(unittest.TestCase):
|
|
|
232
232
|
self.assertEqual(r1p1a.minCount, r1p1b.minCount)
|
|
233
233
|
self.assertEqual(r1p1a.order, r1p1b.order)
|
|
234
234
|
|
|
235
|
-
r1p2a = r1a[
|
|
236
|
-
r1p2b = r1b[
|
|
235
|
+
r1p2a = r1a[Xsd_QName(f'{dm_name}:authors')]
|
|
236
|
+
r1p2b = r1b[Xsd_QName(f'{dm_name}:authors')]
|
|
237
237
|
self.assertFalse(r1p2a is r1p2b)
|
|
238
238
|
self.assertEqual(r1p2a.prop.internal, r1p2b.prop.internal)
|
|
239
239
|
self.assertFalse(r1p2a.prop.internal is r1p2b.prop.internal)
|
|
@@ -246,8 +246,8 @@ class TestDataModel(unittest.TestCase):
|
|
|
246
246
|
self.assertEqual(r1p2a.minCount, r1p2b.minCount)
|
|
247
247
|
self.assertEqual(r1p2a.order, r1p2b.order)
|
|
248
248
|
|
|
249
|
-
r1p3a = r1a[
|
|
250
|
-
r1p3b = r1b[
|
|
249
|
+
r1p3a = r1a[Xsd_QName(f'{dm_name}:comment')]
|
|
250
|
+
r1p3b = r1b[Xsd_QName(f'{dm_name}:comment')]
|
|
251
251
|
self.assertFalse(r1p3a is r1p3b)
|
|
252
252
|
self.assertIsNone(r1p3b.prop.internal)
|
|
253
253
|
self.assertEqual(r1p3a.prop.datatype, r1p3b.prop.datatype)
|
|
@@ -259,11 +259,11 @@ class TestDataModel(unittest.TestCase):
|
|
|
259
259
|
self.assertFalse(r1p3a.prop.languageIn is r1p3b.prop.languageIn)
|
|
260
260
|
self.assertEqual(r1p3a.order, r1p3b.order)
|
|
261
261
|
|
|
262
|
-
r2a = dma[
|
|
263
|
-
r2b = dmb[
|
|
262
|
+
r2a = dma[Xsd_QName(f'{dm_name}:Page')]
|
|
263
|
+
r2b = dmb[Xsd_QName(f'{dm_name}:Page')]
|
|
264
264
|
self.assertFalse(r2a is r2b)
|
|
265
|
-
r2p1a = r2a[
|
|
266
|
-
r2p1b = r2b[
|
|
265
|
+
r2p1a = r2a[Xsd_QName(f'{dm_name}:pagenum')]
|
|
266
|
+
r2p1b = r2b[Xsd_QName(f'{dm_name}:pagenum')]
|
|
267
267
|
self.assertFalse(r2p1a is r2p1b)
|
|
268
268
|
self.assertEqual(r2p1a.prop.internal, r2p1b.prop.internal)
|
|
269
269
|
self.assertFalse(r2p1a.prop.internal is r2p1b.prop.internal)
|
|
@@ -273,8 +273,8 @@ class TestDataModel(unittest.TestCase):
|
|
|
273
273
|
self.assertEqual(r2p1a.maxCount, r2p1b.maxCount)
|
|
274
274
|
self.assertEqual(r2p1a.minCount, r2p1b.minCount)
|
|
275
275
|
|
|
276
|
-
r2p2a = r2a[
|
|
277
|
-
r2p2b = r2b[
|
|
276
|
+
r2p2a = r2a[Xsd_QName(f'{dm_name}:inbook')]
|
|
277
|
+
r2p2b = r2b[Xsd_QName(f'{dm_name}:inbook')]
|
|
278
278
|
self.assertFalse(r2p2a is r2p2b)
|
|
279
279
|
self.assertEqual(r2p2a.prop.internal, r2p2b.prop.internal)
|
|
280
280
|
self.assertFalse(r2p2a.prop.internal is r2p2b.prop.internal)
|
|
@@ -286,8 +286,8 @@ class TestDataModel(unittest.TestCase):
|
|
|
286
286
|
self.assertEqual(r2p2a.minCount, r2p2b.minCount)
|
|
287
287
|
self.assertEqual(r2p2a.order, r2p2b.order)
|
|
288
288
|
|
|
289
|
-
r2p3a = r1a[
|
|
290
|
-
r2p3b = r1b[
|
|
289
|
+
r2p3a = r1a[Xsd_QName(f'{dm_name}:comment')]
|
|
290
|
+
r2p3b = r1b[Xsd_QName(f'{dm_name}:comment')]
|
|
291
291
|
self.assertFalse(r2p3a is r2p3b)
|
|
292
292
|
self.assertIsNone(r2p3b.prop.internal)
|
|
293
293
|
self.assertEqual(r2p3a.prop.datatype, r2p3b.prop.datatype)
|
|
@@ -309,16 +309,16 @@ class TestDataModel(unittest.TestCase):
|
|
|
309
309
|
del dm
|
|
310
310
|
|
|
311
311
|
dm2 = DataModel.read(con=self._connection, project=self._dmproject)
|
|
312
|
-
p1 = dm2[
|
|
312
|
+
p1 = dm2[Xsd_QName(f'{dm_name}:comment')]
|
|
313
313
|
self.assertEqual(p1.datatype, XsdDatatypes.langString)
|
|
314
314
|
self.assertEqual(p1.name, LangString(["Comment@en", "Kommentar@de"]))
|
|
315
315
|
self.assertEqual(p1.languageIn, LanguageIn(Language.EN, Language.DE, Language.FR, Language.IT))
|
|
316
316
|
self.assertTrue(p1.uniqueLang)
|
|
317
317
|
|
|
318
|
-
r1 = dm2[
|
|
318
|
+
r1 = dm2[Xsd_QName(f'{dm_name}:Book')]
|
|
319
319
|
|
|
320
|
-
r1p1 = r1[
|
|
321
|
-
self.assertEqual(r1p1.prop.internal,
|
|
320
|
+
r1p1 = r1[Xsd_QName(f'{dm_name}:title')]
|
|
321
|
+
self.assertEqual(r1p1.prop.internal, Xsd_QName(f'{dm_name}:Book'))
|
|
322
322
|
self.assertEqual(r1p1.prop.datatype, XsdDatatypes.langString)
|
|
323
323
|
self.assertEqual(r1p1.prop.name, LangString(["Title@en", "Titel@de"]))
|
|
324
324
|
self.assertEqual(r1p1.prop.description, LangString(["Title of book@en", "Titel des Buches@de"]))
|
|
@@ -327,15 +327,15 @@ class TestDataModel(unittest.TestCase):
|
|
|
327
327
|
self.assertEqual(r1p1.minCount, Xsd_integer(1))
|
|
328
328
|
self.assertEqual(r1p1.order, Xsd_decimal(1))
|
|
329
329
|
|
|
330
|
-
r1p2 = r1[
|
|
331
|
-
self.assertEqual(r1p2.prop.internal,
|
|
332
|
-
self.assertEqual(r1p2.prop.toClass,
|
|
330
|
+
r1p2 = r1[Xsd_QName(f'{dm_name}:authors')]
|
|
331
|
+
self.assertEqual(r1p2.prop.internal, Xsd_QName(f'{dm_name}:Book'))
|
|
332
|
+
self.assertEqual(r1p2.prop.toClass, Xsd_QName('oldap:Person'))
|
|
333
333
|
self.assertEqual(r1p2.prop.name, LangString(["Author(s)@en", "Autor(en)@de"]))
|
|
334
334
|
self.assertEqual(r1p2.prop.description, LangString(["Writers of the Book@en", "Schreiber*innen des Buchs@de"]))
|
|
335
335
|
self.assertEqual(r1p2.minCount, Xsd_integer(1))
|
|
336
336
|
self.assertEqual(r1p2.order, Xsd_decimal(2))
|
|
337
337
|
|
|
338
|
-
r1p3 = r1[
|
|
338
|
+
r1p3 = r1[Xsd_QName(f'{dm_name}:comment')]
|
|
339
339
|
self.assertIsNone(r1p3.prop.internal)
|
|
340
340
|
self.assertEqual(r1p3.prop.datatype, XsdDatatypes.langString)
|
|
341
341
|
self.assertEqual(r1p3.prop.name, LangString(["Comment@en", "Kommentar@de"]))
|
|
@@ -343,23 +343,23 @@ class TestDataModel(unittest.TestCase):
|
|
|
343
343
|
self.assertEqual(r1p3.prop.languageIn, LanguageIn(Language.EN, Language.DE, Language.FR, Language.IT))
|
|
344
344
|
self.assertEqual(r1p3.order, Xsd_decimal(3))
|
|
345
345
|
|
|
346
|
-
r2 = dm2[
|
|
347
|
-
r2p1 = r2[
|
|
348
|
-
self.assertEqual(r2p1.prop.internal,
|
|
346
|
+
r2 = dm2[Xsd_QName(f'{dm_name}:Page')]
|
|
347
|
+
r2p1 = r2[Xsd_QName(f'{dm_name}:pagenum')]
|
|
348
|
+
self.assertEqual(r2p1.prop.internal, Xsd_QName(f'{dm_name}:Page'))
|
|
349
349
|
self.assertEqual(r2p1.prop.datatype, XsdDatatypes.int)
|
|
350
350
|
self.assertEqual(r2p1.prop.name, LangString(["Pagenumber@en", "Seitennummer@de"]))
|
|
351
351
|
self.assertEqual(r2p1.maxCount, Xsd_integer(1))
|
|
352
352
|
self.assertEqual(r2p1.minCount, Xsd_integer(1))
|
|
353
353
|
|
|
354
|
-
r2p2 = r2[
|
|
355
|
-
self.assertEqual(r2p2.prop.internal,
|
|
354
|
+
r2p2 = r2[Xsd_QName(f'{dm_name}:inbook')]
|
|
355
|
+
self.assertEqual(r2p2.prop.internal, Xsd_QName(f'{dm_name}:Page'))
|
|
356
356
|
self.assertEqual(r2p2.prop[PropClassAttr.CLASS], Iri(f'{dm_name}:Book'))
|
|
357
357
|
self.assertEqual(r2p2.prop[PropClassAttr.NAME], LangString(["Pagenumber@en", "Seitennummer@de"]))
|
|
358
358
|
self.assertEqual(r2p2.maxCount, Xsd_integer(1))
|
|
359
359
|
self.assertEqual(r2p2.minCount, Xsd_integer(1))
|
|
360
360
|
self.assertEqual(r2p2.order, Xsd_decimal(2))
|
|
361
361
|
|
|
362
|
-
r2p3 = r1[
|
|
362
|
+
r2p3 = r1[Xsd_QName(f'{dm_name}:comment')]
|
|
363
363
|
self.assertIsNone(r2p3.prop.internal)
|
|
364
364
|
self.assertEqual(r2p3.prop.datatype, XsdDatatypes.langString)
|
|
365
365
|
self.assertEqual(r2p3.prop.name, LangString(["Comment@en", "Kommentar@de"]))
|
|
@@ -370,20 +370,20 @@ class TestDataModel(unittest.TestCase):
|
|
|
370
370
|
def test_datamodel_read(self):
|
|
371
371
|
model = DataModel.read(self._connection, self._sysproject, ignore_cache=True)
|
|
372
372
|
self.assertEqual(set(model.get_propclasses()), {
|
|
373
|
-
|
|
374
|
-
|
|
373
|
+
Xsd_QName("oldap:hasAdminPermission"),
|
|
374
|
+
Xsd_QName("oldap:statementProperty")
|
|
375
375
|
})
|
|
376
376
|
self.assertEqual(set(model.get_resclasses()), {
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
377
|
+
Xsd_QName("oldap:Project"),
|
|
378
|
+
Xsd_QName("oldap:User"),
|
|
379
|
+
Xsd_QName("oldap:OldapList"),
|
|
380
|
+
Xsd_QName("oldap:OldapListNode"),
|
|
381
|
+
Xsd_QName("oldap:AdminPermission"),
|
|
382
|
+
Xsd_QName("oldap:DataPermission"),
|
|
383
|
+
Xsd_QName("oldap:PermissionSet"),
|
|
384
|
+
Xsd_QName("oldap:Thing"),
|
|
385
|
+
Xsd_QName("oldap:ExternalOntology"),
|
|
386
|
+
Xsd_QName("oldap:inProjectStatement")
|
|
387
387
|
})
|
|
388
388
|
|
|
389
389
|
def test_datamodel_read_shared(self):
|
|
@@ -413,34 +413,34 @@ class TestDataModel(unittest.TestCase):
|
|
|
413
413
|
#
|
|
414
414
|
pubyear = PropertyClass(con=self._connection,
|
|
415
415
|
project=self._dmprojectA,
|
|
416
|
-
property_class_iri=
|
|
416
|
+
property_class_iri=Xsd_QName(f'{dm_name}:pubYear'),
|
|
417
417
|
datatype=XsdDatatypes.gYear,
|
|
418
418
|
name=LangString(["Publication Year@en", "Publicationsjahr@de"]))
|
|
419
419
|
pubyear.force_external()
|
|
420
|
-
dm[
|
|
421
|
-
self.assertEqual({
|
|
420
|
+
dm[Xsd_QName(f'{dm_name}:pubYear')] = pubyear
|
|
421
|
+
self.assertEqual({Xsd_QName(f'{dm_name}:pubYear'): PropertyClassChange(None, Action.CREATE)}, dm.changeset)
|
|
422
422
|
|
|
423
|
-
dm[
|
|
423
|
+
dm[Xsd_QName(f'{dm_name}:comment')].name[Language.FR] = 'Commentaire'
|
|
424
424
|
self.assertEqual({
|
|
425
|
-
|
|
426
|
-
|
|
425
|
+
Xsd_QName(f'{dm_name}:pubYear'): PropertyClassChange(None, Action.CREATE),
|
|
426
|
+
Xsd_QName(f'{dm_name}:comment'): PropertyClassChange(None, Action.MODIFY)
|
|
427
427
|
}, dm.changeset)
|
|
428
428
|
|
|
429
|
-
dm[
|
|
429
|
+
dm[Xsd_QName(f'{dm_name}:Book')][Xsd_QName(f'{dm_name}:authors')].prop.name[Language.FR] = "Ecrivain(s)"
|
|
430
430
|
self.maxDiff = None
|
|
431
431
|
self.assertEqual({
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
432
|
+
Xsd_QName(f'{dm_name}:pubYear'): PropertyClassChange(None, Action.CREATE),
|
|
433
|
+
Xsd_QName(f'{dm_name}:comment'): PropertyClassChange(None, Action.MODIFY),
|
|
434
|
+
Xsd_QName(f'{dm_name}:Book'): ResourceClassChange(None, Action.MODIFY)
|
|
435
435
|
}, dm.changeset)
|
|
436
436
|
|
|
437
|
-
del dm[
|
|
437
|
+
del dm[Xsd_QName(f'{dm_name}:Page')][Xsd_QName(f'{dm_name}:comment')]
|
|
438
438
|
|
|
439
439
|
self.assertEqual({
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
440
|
+
Xsd_QName(f'{dm_name}:pubYear'): PropertyClassChange(None, Action.CREATE),
|
|
441
|
+
Xsd_QName(f'{dm_name}:comment'): PropertyClassChange(None, Action.MODIFY),
|
|
442
|
+
Xsd_QName(f'{dm_name}:Book'): ResourceClassChange(None, Action.MODIFY),
|
|
443
|
+
Xsd_QName(f'{dm_name}:Page'): ResourceClassChange(None, Action.MODIFY)
|
|
444
444
|
}, dm.changeset)
|
|
445
445
|
|
|
446
446
|
pagename = PropertyClass(con=self._connection,
|
|
@@ -449,12 +449,12 @@ class TestDataModel(unittest.TestCase):
|
|
|
449
449
|
datatype=XsdDatatypes.string,
|
|
450
450
|
name=LangString(["Page name@en", "Seitenbezeichnung@de"]))
|
|
451
451
|
|
|
452
|
-
dm[
|
|
452
|
+
dm[Xsd_QName(f'{dm_name}:Page')][Xsd_QName(f'{dm_name}:pageName')] = HasProperty(con=self._connection, project=self._project, prop=pagename, maxCount=1, minCount=1)
|
|
453
453
|
self.assertEqual({
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
454
|
+
Xsd_QName(f'{dm_name}:pubYear'): PropertyClassChange(None, Action.CREATE),
|
|
455
|
+
Xsd_QName(f'{dm_name}:comment'): PropertyClassChange(None, Action.MODIFY),
|
|
456
|
+
Xsd_QName(f'{dm_name}:Book'): ResourceClassChange(None, Action.MODIFY),
|
|
457
|
+
Xsd_QName(f'{dm_name}:Page'): ResourceClassChange(None, Action.MODIFY)
|
|
458
458
|
}, dm.changeset)
|
|
459
459
|
|
|
460
460
|
# @unittest.skip('Work in progress')
|
|
@@ -476,39 +476,39 @@ class TestDataModel(unittest.TestCase):
|
|
|
476
476
|
datatype=XsdDatatypes.gYear,
|
|
477
477
|
name=LangString(["Publication Year@en", "Publicationsjahr@de"]))
|
|
478
478
|
pubyear.force_external()
|
|
479
|
-
dm[
|
|
479
|
+
dm[Xsd_QName(f'{dm_name}:pubYear')] = pubyear
|
|
480
480
|
|
|
481
481
|
#
|
|
482
482
|
# Modify a standalone property
|
|
483
483
|
#
|
|
484
|
-
dm[
|
|
484
|
+
dm[Xsd_QName(f'{dm_name}:comment')][PropClassAttr.NAME][Language.FR] = 'Commentaire'
|
|
485
485
|
|
|
486
486
|
#
|
|
487
487
|
# Modify an internal property
|
|
488
488
|
#
|
|
489
|
-
dm[
|
|
489
|
+
dm[Xsd_QName(f'{dm_name}:Book')][Xsd_QName(f'{dm_name}:authors')].prop.name[Language.FR] = "Ecrivain(s)"
|
|
490
490
|
|
|
491
491
|
#
|
|
492
492
|
# Add a new property as internal property
|
|
493
493
|
#
|
|
494
494
|
pagename = PropertyClass(con=self._connection,
|
|
495
495
|
project=self._dmprojectB,
|
|
496
|
-
property_class_iri=
|
|
496
|
+
property_class_iri=Xsd_QName(f'{dm_name}:pageName'),
|
|
497
497
|
datatype=XsdDatatypes.string,
|
|
498
498
|
name=LangString(["Page name@en", "Seitenbezeichnung@de"]))
|
|
499
499
|
|
|
500
|
-
dm[
|
|
500
|
+
dm[Xsd_QName(f'{dm_name}:Page')][Xsd_QName(f'{dm_name}:pageName')] = HasProperty(con=self._connection, project=self._project, prop=pagename)
|
|
501
501
|
|
|
502
502
|
dm.update()
|
|
503
503
|
|
|
504
504
|
del dm
|
|
505
505
|
|
|
506
506
|
dm = DataModel.read(self._connection, self._dmprojectB, ignore_cache=True)
|
|
507
|
-
self.assertIsNotNone(dm.get(
|
|
508
|
-
self.assertEqual(dm[
|
|
509
|
-
self.assertEqual(dm[
|
|
510
|
-
self.assertEqual(dm[
|
|
511
|
-
self.assertIsNotNone(dm[
|
|
507
|
+
self.assertIsNotNone(dm.get(Xsd_QName(f'{dm_name}:pubYear')))
|
|
508
|
+
self.assertEqual(dm[Xsd_QName(f'{dm_name}:pubYear')].datatype, XsdDatatypes.gYear)
|
|
509
|
+
self.assertEqual(dm[Xsd_QName(f'{dm_name}:comment')].name[Language.FR], 'Commentaire')
|
|
510
|
+
self.assertEqual(dm[Xsd_QName(f'{dm_name}:Book')][Xsd_QName(f'{dm_name}:authors')].prop.name[Language.FR], "Ecrivain(s)")
|
|
511
|
+
self.assertIsNotNone(dm[Xsd_QName(f'{dm_name}:Page')][Xsd_QName(f'{dm_name}:pageName')])
|
|
512
512
|
|
|
513
513
|
def test_datamodel_modify_C(self):
|
|
514
514
|
dm_name = self._dmprojectC.projectShortName
|
|
@@ -522,14 +522,14 @@ class TestDataModel(unittest.TestCase):
|
|
|
522
522
|
#
|
|
523
523
|
# remove the comment property from the Page resource
|
|
524
524
|
#
|
|
525
|
-
del dm[
|
|
525
|
+
del dm[Xsd_QName(f'{dm_name}:Page')][Xsd_QName(f'{dm_name}:comment')]
|
|
526
526
|
|
|
527
527
|
dm.update()
|
|
528
528
|
|
|
529
529
|
del dm
|
|
530
530
|
|
|
531
531
|
dm = DataModel.read(self._connection, self._dmprojectC, ignore_cache=True)
|
|
532
|
-
self.assertIsNone(dm[
|
|
532
|
+
self.assertIsNone(dm[Xsd_QName(f'{dm_name}:Page')].get(Xsd_QName(f'{dm_name}:comment'))) # TODO THIS TEST SHOULD PASS!!!!
|
|
533
533
|
|
|
534
534
|
def test_datamodel_modify_D(self):
|
|
535
535
|
dm_name = self._dmproject.projectShortName
|
|
@@ -537,10 +537,10 @@ class TestDataModel(unittest.TestCase):
|
|
|
537
537
|
dm = self.generate_a_datamodel(self._dmproject)
|
|
538
538
|
dm.create()
|
|
539
539
|
dm = DataModel.read(self._connection, self._dmproject, ignore_cache=True)
|
|
540
|
-
dm[
|
|
540
|
+
dm[Xsd_QName(f'{dm_name}:comment')].name = LangString("Waseliwas@zu")
|
|
541
541
|
dm.update()
|
|
542
542
|
dm = DataModel.read(self._connection, self._dmproject, ignore_cache=True)
|
|
543
|
-
self.assertEqual(dm[
|
|
543
|
+
self.assertEqual(dm[Xsd_QName(f'{dm_name}:comment')].name, LangString("Waseliwas@zu"))
|
|
544
544
|
|
|
545
545
|
def test_datamodel_modify_E(self):
|
|
546
546
|
dm_name = self._dmprojectE.projectShortName
|
|
@@ -559,11 +559,11 @@ class TestDataModel(unittest.TestCase):
|
|
|
559
559
|
datatype=XsdDatatypes.gYear,
|
|
560
560
|
name=LangString(["Publication YearE@en", "PublicationsjahrE@de"]))
|
|
561
561
|
pubyear.force_external()
|
|
562
|
-
dm[
|
|
562
|
+
dm[Xsd_QName(f'{dm_name}:pubYearE')] = pubyear
|
|
563
563
|
|
|
564
564
|
dm.update()
|
|
565
565
|
dm = DataModel.read(self._connection, self._dmprojectE, ignore_cache=True)
|
|
566
|
-
self.assertIsNotNone(dm.get(
|
|
566
|
+
self.assertIsNotNone(dm.get(Xsd_QName(f'{dm_name}:pubYearE')))
|
|
567
567
|
|
|
568
568
|
def test_datamodel_modify_I(self):
|
|
569
569
|
dm_name = self._dmprojectI.projectShortName
|
|
@@ -571,21 +571,20 @@ class TestDataModel(unittest.TestCase):
|
|
|
571
571
|
dm.create()
|
|
572
572
|
del dm
|
|
573
573
|
dm = DataModel.read(self._connection, self._dmprojectI, ignore_cache=True)
|
|
574
|
-
dm[
|
|
574
|
+
dm[Xsd_QName(f'{dm_name}:Book')].add_superclasses([f'{dm_name}:Page', 'dcterms:Event'])
|
|
575
575
|
dm.update()
|
|
576
576
|
|
|
577
577
|
dm = DataModel.read(self._connection, self._dmprojectI, ignore_cache=True)
|
|
578
|
-
tmp = set([key for key, val in dm[
|
|
578
|
+
tmp = set([key for key, val in dm[Xsd_QName(f'{dm_name}:Book')].superclass.items()])
|
|
579
579
|
assert tmp == {'oldap:Thing', f'{dm_name}:Page', 'dcterms:Event'}
|
|
580
580
|
|
|
581
|
-
dm[
|
|
581
|
+
dm[Xsd_QName(f'{dm_name}:Book')].del_superclasses([f'{dm_name}:Page'])
|
|
582
582
|
dm.update()
|
|
583
583
|
dm = DataModel.read(self._connection, self._dmprojectI, ignore_cache=True)
|
|
584
|
-
tmp = set([key for key, val in dm[
|
|
584
|
+
tmp = set([key for key, val in dm[Xsd_QName(f'{dm_name}:Book')].superclass.items()])
|
|
585
585
|
assert tmp == {'oldap:Thing', 'dcterms:Event'}
|
|
586
586
|
|
|
587
587
|
|
|
588
|
-
|
|
589
588
|
def test_incremental_generation(self):
|
|
590
589
|
dm = DataModel(con=self._connection,
|
|
591
590
|
project=self._dmproject)
|
|
@@ -598,13 +597,13 @@ class TestDataModel(unittest.TestCase):
|
|
|
598
597
|
#
|
|
599
598
|
generic_comment = PropertyClass(con=self._connection,
|
|
600
599
|
project=self._dmproject,
|
|
601
|
-
property_class_iri=
|
|
600
|
+
property_class_iri=Xsd_QName(f'{dm_name}:genericComment'),
|
|
602
601
|
datatype=XsdDatatypes.string,
|
|
603
602
|
name=LangString(["Generic comment@en", "Allgemeiner Kommentar@de"]))
|
|
604
|
-
dm[
|
|
603
|
+
dm[Xsd_QName(f'{dm_name}:genericComment')] = generic_comment
|
|
605
604
|
dm.update()
|
|
606
605
|
#dm = DataModel.read(self._connection, self._dmproject, ignore_cache=True)
|
|
607
|
-
p1 = dm[
|
|
606
|
+
p1 = dm[Xsd_QName(f'{dm_name}:genericComment')]
|
|
608
607
|
self.assertEqual(p1.datatype, XsdDatatypes.string)
|
|
609
608
|
|
|
610
609
|
#
|
|
@@ -613,7 +612,7 @@ class TestDataModel(unittest.TestCase):
|
|
|
613
612
|
p1.description = LangString("For testing purposes only@en")
|
|
614
613
|
dm.update()
|
|
615
614
|
#dm = DataModel.read(self._connection, self._dmproject, ignore_cache=True)
|
|
616
|
-
p1 = dm[
|
|
615
|
+
p1 = dm[Xsd_QName(f'{dm_name}:genericComment')]
|
|
617
616
|
self.assertEqual(p1.datatype, XsdDatatypes.string)
|
|
618
617
|
self.assertEqual(p1.description, LangString("For testing purposes only@en"))
|
|
619
618
|
|
|
@@ -622,7 +621,7 @@ class TestDataModel(unittest.TestCase):
|
|
|
622
621
|
#
|
|
623
622
|
titleX = PropertyClass(con=self._connection,
|
|
624
623
|
project=self._dmproject,
|
|
625
|
-
property_class_iri=
|
|
624
|
+
property_class_iri=Xsd_QName(f'{dm_name}:titleX'),
|
|
626
625
|
datatype=XsdDatatypes.langString,
|
|
627
626
|
name=LangString(["TitleX@en", "TitelX@de"]),
|
|
628
627
|
description=LangString(["TitleX of book@en", "TitelX des Buches@de"]),
|
|
@@ -631,34 +630,34 @@ class TestDataModel(unittest.TestCase):
|
|
|
631
630
|
|
|
632
631
|
authorsX = PropertyClass(con=self._connection,
|
|
633
632
|
project=self._dmproject,
|
|
634
|
-
property_class_iri=
|
|
635
|
-
toClass=
|
|
633
|
+
property_class_iri=Xsd_QName(f'{dm_name}:authorsX'),
|
|
634
|
+
toClass=Xsd_QName('oldap:Person'),
|
|
636
635
|
name=LangString(["Author(s)X@en", "Autor(en)X@de"]),
|
|
637
636
|
description=LangString(["Writers of the BookX@en", "Schreiber*innen des BuchsX@de"]))
|
|
638
637
|
|
|
639
638
|
bookX = ResourceClass(con=self._connection,
|
|
640
639
|
project=self._dmproject,
|
|
641
|
-
owlclass_iri=
|
|
640
|
+
owlclass_iri=Xsd_QName(f'{dm_name}:BookX'),
|
|
642
641
|
label=LangString(["BookX@en", "BuchX@de"]),
|
|
643
642
|
comment=LangString("Ein Buch mit SeitenX@en"),
|
|
644
643
|
closed=Xsd_boolean(True),
|
|
645
644
|
hasproperties=[
|
|
646
645
|
HasProperty(con=self._connection, project=self._project, prop=titleX, minCount=Xsd_integer(1), order=1),
|
|
647
646
|
HasProperty(con=self._connection, project=self._project, prop=authorsX, minCount=Xsd_integer(1), order=2),
|
|
648
|
-
HasProperty(con=self._connection, project=self._project, prop=
|
|
649
|
-
dm[
|
|
647
|
+
HasProperty(con=self._connection, project=self._project, prop=Xsd_QName(f'{dm_name}:genericComment'), order=3)])
|
|
648
|
+
dm[Xsd_QName(f'{dm_name}:BookX')] = bookX
|
|
650
649
|
dm.update()
|
|
651
650
|
|
|
652
651
|
#dm = DataModel.read(self._connection, self._dmproject, ignore_cache=True)
|
|
653
652
|
|
|
654
|
-
p1 = dm[
|
|
653
|
+
p1 = dm[Xsd_QName(f'{dm_name}:genericComment')]
|
|
655
654
|
self.assertEqual(p1.datatype, XsdDatatypes.string)
|
|
656
655
|
self.assertEqual(p1.description, LangString("For testing purposes only@en"))
|
|
657
656
|
|
|
658
|
-
r1 = dm[
|
|
657
|
+
r1 = dm[Xsd_QName(f'{dm_name}:BookX')]
|
|
659
658
|
|
|
660
|
-
r1p1 = r1[
|
|
661
|
-
self.assertEqual(r1p1.prop.internal,
|
|
659
|
+
r1p1 = r1[Xsd_QName(f'{dm_name}:titleX')]
|
|
660
|
+
self.assertEqual(r1p1.prop.internal, Xsd_QName(f'{dm_name}:BookX'))
|
|
662
661
|
self.assertEqual(r1p1.prop.datatype, XsdDatatypes.langString)
|
|
663
662
|
self.assertEqual(r1p1.prop.name, LangString(["TitleX@en", "TitelX@de"]))
|
|
664
663
|
self.assertEqual(r1p1.prop.description, LangString(["TitleX of book@en", "TitelX des Buches@de"]))
|
|
@@ -667,15 +666,15 @@ class TestDataModel(unittest.TestCase):
|
|
|
667
666
|
self.assertEqual(r1p1.minCount, Xsd_integer(1))
|
|
668
667
|
self.assertEqual(r1p1.order, Xsd_decimal(1))
|
|
669
668
|
|
|
670
|
-
r1p2 = r1[
|
|
671
|
-
self.assertEqual(r1p2.prop.internal,
|
|
672
|
-
self.assertEqual(r1p2.prop.toClass,
|
|
669
|
+
r1p2 = r1[Xsd_QName(f'{dm_name}:authorsX')]
|
|
670
|
+
self.assertEqual(r1p2.prop.internal, Xsd_QName(f'{dm_name}:BookX'))
|
|
671
|
+
self.assertEqual(r1p2.prop.toClass, Xsd_QName('oldap:Person'))
|
|
673
672
|
self.assertEqual(r1p2.prop.name, LangString(["Author(s)X@en", "Autor(en)X@de"]))
|
|
674
673
|
self.assertEqual(r1p2.prop.description, LangString(["Writers of the BookX@en", "Schreiber*innen des BuchsX@de"]))
|
|
675
674
|
self.assertEqual(r1p2.minCount, Xsd_integer(1))
|
|
676
675
|
self.assertEqual(r1p2.order, Xsd_decimal(2))
|
|
677
676
|
|
|
678
|
-
r1p3 = r1[
|
|
677
|
+
r1p3 = r1[Xsd_QName(f'{dm_name}:genericComment')]
|
|
679
678
|
self.assertIsNone(r1p3.prop.internal)
|
|
680
679
|
self.assertEqual(r1p3.prop.datatype, XsdDatatypes.string)
|
|
681
680
|
self.assertEqual(r1p3.prop.name, LangString(["Generic comment@en", "Allgemeiner Kommentar@de"]))
|
|
@@ -694,15 +693,15 @@ class TestDataModel(unittest.TestCase):
|
|
|
694
693
|
#
|
|
695
694
|
generic_comment = PropertyClass(con=self._connection,
|
|
696
695
|
project=self._dmprojectG,
|
|
697
|
-
property_class_iri=
|
|
696
|
+
property_class_iri=Xsd_QName(f'{dm_name}:genericComment'),
|
|
698
697
|
datatype=XsdDatatypes.string,
|
|
699
698
|
name=LangString(["Generic comment@en", "Allgemeiner Kommentar@de"]))
|
|
700
699
|
generic_comment.force_external()
|
|
701
|
-
dm[
|
|
700
|
+
dm[Xsd_QName(f'{dm_name}:genericComment')] = generic_comment
|
|
702
701
|
dm.update()
|
|
703
702
|
|
|
704
703
|
dm = DataModel.read(self._connection, self._dmprojectG, ignore_cache=True)
|
|
705
|
-
p1 = dm[
|
|
704
|
+
p1 = dm[Xsd_QName(f'{dm_name}:genericComment')]
|
|
706
705
|
self.assertEqual(p1.datatype, XsdDatatypes.string)
|
|
707
706
|
|
|
708
707
|
#
|
|
@@ -710,12 +709,12 @@ class TestDataModel(unittest.TestCase):
|
|
|
710
709
|
#
|
|
711
710
|
generic_comment = PropertyClass(con=self._connection,
|
|
712
711
|
project=self._dmprojectG,
|
|
713
|
-
property_class_iri=
|
|
712
|
+
property_class_iri=Xsd_QName(f'{dm_name}:genericComment'),
|
|
714
713
|
datatype=XsdDatatypes.string,
|
|
715
714
|
name=LangString(["Generic comment@en", "Allgemeiner Kommentar@de"]))
|
|
716
715
|
generic_comment.force_external()
|
|
717
716
|
with self.assertRaises(OldapErrorAlreadyExists):
|
|
718
|
-
dm[
|
|
717
|
+
dm[Xsd_QName(f'{dm_name}:genericComment')] = generic_comment
|
|
719
718
|
|
|
720
719
|
def test_datamodel_duplicate_resource_property(self):
|
|
721
720
|
dm_name = self._dmprojectH.projectShortName
|
|
@@ -728,7 +727,7 @@ class TestDataModel(unittest.TestCase):
|
|
|
728
727
|
|
|
729
728
|
title = PropertyClass(con=self._connection,
|
|
730
729
|
project=self._dmprojectH,
|
|
731
|
-
property_class_iri=
|
|
730
|
+
property_class_iri=Xsd_QName(f'{dm_name}:title'),
|
|
732
731
|
datatype=XsdDatatypes.langString,
|
|
733
732
|
name=LangString(["Title@en", "Titel@de"]),
|
|
734
733
|
description=LangString(["Title of book@en", "Titel des Buches@de"]),
|
|
@@ -737,7 +736,7 @@ class TestDataModel(unittest.TestCase):
|
|
|
737
736
|
|
|
738
737
|
hasprop = HasProperty(con=self._connection, project=self._project, prop=title, minCount=Xsd_integer(1), order=1)
|
|
739
738
|
|
|
740
|
-
dm[
|
|
739
|
+
dm[Xsd_QName(f'{dm_name}:Book')][Xsd_QName(f'{dm_name}:title')] = hasprop
|
|
741
740
|
|
|
742
741
|
with self.assertRaises(OldapErrorAlreadyExists):
|
|
743
742
|
dm.update()
|
|
@@ -746,14 +745,14 @@ class TestDataModel(unittest.TestCase):
|
|
|
746
745
|
dm_name = self._dmproject.projectShortName
|
|
747
746
|
generic_commentY = PropertyClass(con=self._connection,
|
|
748
747
|
project=self._dmproject,
|
|
749
|
-
property_class_iri=
|
|
748
|
+
property_class_iri=Xsd_QName(f'{dm_name}:genericCommentY'),
|
|
750
749
|
datatype=XsdDatatypes.string,
|
|
751
750
|
name=LangString(["Generic commentY@en", "Allgemeiner KommentarY@de"]))
|
|
752
751
|
generic_commentY.force_external()
|
|
753
752
|
|
|
754
753
|
titleY = PropertyClass(con=self._connection,
|
|
755
754
|
project=self._dmproject,
|
|
756
|
-
property_class_iri=
|
|
755
|
+
property_class_iri=Xsd_QName(f'{dm_name}:titleY'),
|
|
757
756
|
datatype=XsdDatatypes.langString,
|
|
758
757
|
name=LangString(["TitleY@en", "TitelY@de"]),
|
|
759
758
|
description=LangString(["TitleY of book@en", "TitelY des Buches@de"]),
|
|
@@ -762,14 +761,14 @@ class TestDataModel(unittest.TestCase):
|
|
|
762
761
|
|
|
763
762
|
authorsY = PropertyClass(con=self._connection,
|
|
764
763
|
project=self._dmproject,
|
|
765
|
-
property_class_iri=
|
|
764
|
+
property_class_iri=Xsd_QName(f'{dm_name}:authorsY'),
|
|
766
765
|
toClass=Iri('oldap:Person'),
|
|
767
766
|
name=LangString(["Author(s)Y@en", "Autor(en)Y@de"]),
|
|
768
767
|
description=LangString(["Writers of the BookY@en", "Schreiber*innen des BuchsY@de"]))
|
|
769
768
|
|
|
770
769
|
bookY = ResourceClass(con=self._connection,
|
|
771
770
|
project=self._dmproject,
|
|
772
|
-
owlclass_iri=
|
|
771
|
+
owlclass_iri=Xsd_QName(f'{dm_name}:BookY'),
|
|
773
772
|
label=LangString(["BookY@en", "BuchY@de"]),
|
|
774
773
|
comment=LangString("Ein Buch mit SeitenY@en"),
|
|
775
774
|
closed=Xsd_boolean(True),
|
|
@@ -789,15 +788,15 @@ class TestDataModel(unittest.TestCase):
|
|
|
789
788
|
#
|
|
790
789
|
# a few check's if the creation of the datamodel worked as expected...
|
|
791
790
|
#
|
|
792
|
-
p1 = dm[
|
|
791
|
+
p1 = dm[Xsd_QName(f'{dm_name}:genericCommentY')]
|
|
793
792
|
self.assertEqual(p1.datatype, XsdDatatypes.string)
|
|
794
793
|
self.assertEqual(p1.name, LangString(["Generic commentY@en", "Allgemeiner KommentarY@de"]))
|
|
795
794
|
self.assertIsNone(p1.internal)
|
|
796
795
|
|
|
797
|
-
r1 = dm[
|
|
796
|
+
r1 = dm[Xsd_QName(f'{dm_name}:BookY')]
|
|
798
797
|
|
|
799
|
-
r1p1 = r1[
|
|
800
|
-
self.assertEqual(r1p1.prop.internal,
|
|
798
|
+
r1p1 = r1[Xsd_QName(f'{dm_name}:titleY')]
|
|
799
|
+
self.assertEqual(r1p1.prop.internal, Xsd_QName(f'{dm_name}:BookY'))
|
|
801
800
|
self.assertEqual(r1p1.prop.datatype, XsdDatatypes.langString)
|
|
802
801
|
self.assertEqual(r1p1.prop.name, LangString(["TitleY@en", "TitelY@de"]))
|
|
803
802
|
self.assertEqual(r1p1.prop.description, LangString(["TitleY of book@en", "TitelY des Buches@de"]))
|
|
@@ -806,15 +805,15 @@ class TestDataModel(unittest.TestCase):
|
|
|
806
805
|
self.assertEqual(r1p1.minCount, Xsd_integer(1))
|
|
807
806
|
self.assertEqual(r1p1.order, Xsd_decimal(1))
|
|
808
807
|
|
|
809
|
-
r1p2 = r1[
|
|
810
|
-
self.assertEqual(r1p2.prop.internal,
|
|
811
|
-
self.assertEqual(r1p2.prop.toClass,
|
|
808
|
+
r1p2 = r1[Xsd_QName(f'{dm_name}:authorsY')]
|
|
809
|
+
self.assertEqual(r1p2.prop.internal, Xsd_QName(f'{dm_name}:BookY'))
|
|
810
|
+
self.assertEqual(r1p2.prop.toClass, Xsd_QName('oldap:Person'))
|
|
812
811
|
self.assertEqual(r1p2.prop.name, LangString(["Author(s)Y@en", "Autor(en)Y@de"]))
|
|
813
812
|
self.assertEqual(r1p2.prop.description, LangString(["Writers of the BookY@en", "Schreiber*innen des BuchsY@de"]))
|
|
814
813
|
self.assertEqual(r1p2.minCount, Xsd_integer(1))
|
|
815
814
|
self.assertEqual(r1p2.order, Xsd_decimal(2))
|
|
816
815
|
|
|
817
|
-
r1p3 = r1[
|
|
816
|
+
r1p3 = r1[Xsd_QName(f'{dm_name}:genericCommentY')]
|
|
818
817
|
self.assertIsNone(r1p3.prop.internal)
|
|
819
818
|
self.assertEqual(r1p3.prop.datatype, XsdDatatypes.string)
|
|
820
819
|
self.assertEqual(r1p3.prop.name, LangString(["Generic commentY@en", "Allgemeiner KommentarY@de"]))
|
|
@@ -823,12 +822,12 @@ class TestDataModel(unittest.TestCase):
|
|
|
823
822
|
#
|
|
824
823
|
# Change name of genericCommentY, accessed by resource BookY
|
|
825
824
|
#
|
|
826
|
-
dm[
|
|
825
|
+
dm[Xsd_QName(f'{dm_name}:genericCommentY')].name[Language.IT] = "Commentario"
|
|
827
826
|
|
|
828
827
|
#
|
|
829
828
|
# Add a field to standalone property
|
|
830
829
|
#
|
|
831
|
-
dm[
|
|
830
|
+
dm[Xsd_QName(f'{dm_name}:genericCommentY')].description = LangString("DescriptionY@en", "Beschreibung@de")
|
|
832
831
|
|
|
833
832
|
|
|
834
833
|
#
|
|
@@ -836,39 +835,39 @@ class TestDataModel(unittest.TestCase):
|
|
|
836
835
|
#
|
|
837
836
|
pubDateY = PropertyClass(con=self._connection,
|
|
838
837
|
project=self._project,
|
|
839
|
-
property_class_iri=
|
|
838
|
+
property_class_iri=Xsd_QName(f'{dm_name}:pubDateY'),
|
|
840
839
|
datatype=XsdDatatypes.date)
|
|
841
|
-
dm[
|
|
840
|
+
dm[Xsd_QName(f'{dm_name}:BookY')][Xsd_QName(f'{dm_name}:pubDateY')] = HasProperty(con=self._connection, project=self._project, prop=pubDateY)
|
|
842
841
|
|
|
843
842
|
#
|
|
844
843
|
# Delete a property
|
|
845
844
|
#
|
|
846
|
-
del dm[
|
|
845
|
+
del dm[Xsd_QName(f'{dm_name}:BookY')][Xsd_QName(f'{dm_name}:authorsY')]
|
|
847
846
|
|
|
848
847
|
dm.update()
|
|
849
848
|
dm = DataModel.read(self._connection, self._dmproject, ignore_cache=True)
|
|
850
|
-
r1 = dm[
|
|
851
|
-
r1p3 = r1[
|
|
849
|
+
r1 = dm[Xsd_QName(f'{dm_name}:BookY')]
|
|
850
|
+
r1p3 = r1[Xsd_QName(f'{dm_name}:genericCommentY')]
|
|
852
851
|
self.assertEqual(r1p3.prop.name, LangString(["Generic commentY@en", "Allgemeiner KommentarY@de", "Commentario@it"]))
|
|
853
852
|
self.assertEqual(r1p3.prop.description, LangString("DescriptionY@en", "Beschreibung@de"))
|
|
854
|
-
self.assertIsNotNone(dm[
|
|
855
|
-
self.assertIsNone(dm[
|
|
853
|
+
self.assertIsNotNone(dm[Xsd_QName(f'{dm_name}:BookY')][Xsd_QName(f'{dm_name}:pubDateY')])
|
|
854
|
+
self.assertIsNone(dm[Xsd_QName(f'{dm_name}:BookY')][Xsd_QName(f'{dm_name}:authorsY')])
|
|
856
855
|
|
|
857
856
|
#
|
|
858
857
|
# delete a complete resource
|
|
859
858
|
#
|
|
860
|
-
del dm[
|
|
859
|
+
del dm[Xsd_QName(f'{dm_name}:BookY')]
|
|
861
860
|
dm.update()
|
|
862
861
|
dm = DataModel.read(self._connection, self._dmproject, ignore_cache=True)
|
|
863
|
-
self.assertIsNone(dm.get(
|
|
862
|
+
self.assertIsNone(dm.get(Xsd_QName(f'{dm_name}:BookY')))
|
|
864
863
|
|
|
865
864
|
#
|
|
866
865
|
# delete standalone property
|
|
867
866
|
#
|
|
868
867
|
dm = DataModel.read(self._connection, self._dmproject, ignore_cache=True)
|
|
869
|
-
del dm[
|
|
868
|
+
del dm[Xsd_QName(f'{dm_name}:genericCommentY')]
|
|
870
869
|
dm.update()
|
|
871
|
-
self.assertIsNone(dm.get(
|
|
870
|
+
self.assertIsNone(dm.get(Xsd_QName(f'{dm_name}:genericCommentY')))
|
|
872
871
|
|
|
873
872
|
|
|
874
873
|
def test_update2(self):
|
|
@@ -895,7 +894,7 @@ class TestDataModel(unittest.TestCase):
|
|
|
895
894
|
|
|
896
895
|
Sheep = ResourceClass(con=self._connection,
|
|
897
896
|
project=proj,
|
|
898
|
-
owlclass_iri=
|
|
897
|
+
owlclass_iri=Xsd_QName("hyha:Sheep"),
|
|
899
898
|
label=["Eine Buchseite@de", "A page of a book@en"],
|
|
900
899
|
comment=["Eine Buchseite@de","A page of a book@en"],
|
|
901
900
|
closed=Xsd_boolean(True),
|
|
@@ -907,11 +906,11 @@ class TestDataModel(unittest.TestCase):
|
|
|
907
906
|
dm.create()
|
|
908
907
|
dm = DataModel.read(self._connection, proj, ignore_cache=True)
|
|
909
908
|
|
|
910
|
-
del dm[
|
|
909
|
+
del dm[Xsd_QName('hyha:Sheep')][Xsd_QName('hyha:testProp2')]
|
|
911
910
|
dm.update()
|
|
912
911
|
|
|
913
912
|
dm = DataModel.read(self._connection, proj, ignore_cache=True)
|
|
914
|
-
self.assertIsNone(dm[
|
|
913
|
+
self.assertIsNone(dm[Xsd_QName('hyha:Sheep')][Xsd_QName('hyha:testProp2')])
|
|
915
914
|
|
|
916
915
|
dm = DataModel(con=self._connection,
|
|
917
916
|
project=proj)
|
|
@@ -927,26 +926,26 @@ class TestDataModel(unittest.TestCase):
|
|
|
927
926
|
|
|
928
927
|
bookZZ = ResourceClass(con=self._connection,
|
|
929
928
|
project=self._dmproject,
|
|
930
|
-
owlclass_iri=
|
|
929
|
+
owlclass_iri=Xsd_QName(f'{dm_name}:BookZZ'),
|
|
931
930
|
label=LangString(["BookZZ@en", "BuchZZ@de"]),
|
|
932
931
|
comment=LangString("Ein Buch mit SeitenZZ@en"),
|
|
933
932
|
closed=Xsd_boolean(True))
|
|
934
933
|
|
|
935
|
-
dm[
|
|
934
|
+
dm[Xsd_QName(f'{dm_name}:BookZZ')] = bookZZ
|
|
936
935
|
dm.update()
|
|
937
936
|
dm = DataModel.read(self._connection, self._dmproject, ignore_cache=True)
|
|
938
937
|
|
|
939
938
|
pubDateZ = PropertyClass(con=self._connection,
|
|
940
939
|
project=self._project,
|
|
941
|
-
property_class_iri=
|
|
940
|
+
property_class_iri=Xsd_QName(f'{dm_name}:pubDateZ'),
|
|
942
941
|
datatype=XsdDatatypes.date)
|
|
943
|
-
dm[
|
|
942
|
+
dm[Xsd_QName(f'{dm_name}:BookZZ')][Xsd_QName(f'{dm_name}:pubDateZ')] = HasProperty(con=self._connection, project=self._project, prop=pubDateZ)
|
|
944
943
|
dm.update()
|
|
945
944
|
dm = DataModel.read(self._connection, self._dmproject, ignore_cache=True)
|
|
946
|
-
test_res = dm[
|
|
945
|
+
test_res = dm[Xsd_QName(f'{dm_name}:BookZZ')]
|
|
947
946
|
self.assertEqual(test_res.label, LangString(["BookZZ@en", "BuchZZ@de"]))
|
|
948
|
-
self.assertIsInstance(test_res[
|
|
949
|
-
self.assertEqual(test_res[
|
|
947
|
+
self.assertIsInstance(test_res[Xsd_QName(f'{dm_name}:pubDateZ')], HasProperty)
|
|
948
|
+
self.assertEqual(test_res[Xsd_QName(f'{dm_name}:pubDateZ')].prop.property_class_iri, Xsd_QName(f'{dm_name}:pubDateZ'))
|
|
950
949
|
|
|
951
950
|
dm.delete()
|
|
952
951
|
with self.assertRaises(OldapErrorNotFound):
|
|
@@ -956,12 +955,12 @@ class TestDataModel(unittest.TestCase):
|
|
|
956
955
|
def test_delete_label_from_resource(self):
|
|
957
956
|
pagename = PropertyClass(con=self._connection,
|
|
958
957
|
project=self._dmprojectF,
|
|
959
|
-
property_class_iri=
|
|
958
|
+
property_class_iri=Xsd_QName('test:testPropGaga'),
|
|
960
959
|
datatype=XsdDatatypes.string,
|
|
961
960
|
name=LangString("Page designation@en", "Seitenbezeichnung@de"))
|
|
962
961
|
page = ResourceClass(con=self._connection,
|
|
963
962
|
project=self._dmprojectF,
|
|
964
|
-
owlclass_iri=
|
|
963
|
+
owlclass_iri=Xsd_QName("test:PageGaga"),
|
|
965
964
|
#superclass=Iri('oldap:Thing'), # no longer necessary TODO: Test it!!!!
|
|
966
965
|
label=LangString(["Project@en", "Projekt@de"]),
|
|
967
966
|
comment=LangString(["A page of a book@en", "Seite eines Buches@de"]),
|
|
@@ -974,7 +973,7 @@ class TestDataModel(unittest.TestCase):
|
|
|
974
973
|
dm.create()
|
|
975
974
|
dm = DataModel.read(self._connection, self._dmprojectF, ignore_cache=True)
|
|
976
975
|
#del dm[Iri('test:Page')][ResClassAttribute.from_name('label')]
|
|
977
|
-
delattr(dm[
|
|
976
|
+
delattr(dm[Xsd_QName('test:PageGaga')], 'label')
|
|
978
977
|
dm.update()
|
|
979
978
|
dm = DataModel.read(self._connection, self._dmprojectF, ignore_cache=True)
|
|
980
979
|
|
|
@@ -982,32 +981,32 @@ class TestDataModel(unittest.TestCase):
|
|
|
982
981
|
def test_write_trig(self):
|
|
983
982
|
pagename = PropertyClass(con=self._connection,
|
|
984
983
|
project=self._project,
|
|
985
|
-
property_class_iri=
|
|
984
|
+
property_class_iri=Xsd_QName('test:pageDesignation'),
|
|
986
985
|
datatype=XsdDatatypes.string,
|
|
987
986
|
name=LangString("Page designation@en", "Seitenbezeichnung@de"))
|
|
988
987
|
pagenum = PropertyClass(con=self._connection,
|
|
989
988
|
project=self._project,
|
|
990
|
-
property_class_iri=
|
|
989
|
+
property_class_iri=Xsd_QName('test:pageNum'),
|
|
991
990
|
datatype=XsdDatatypes.positiveInteger,
|
|
992
991
|
name=LangString("Pagenumber@en", "Seitennummer@de"),
|
|
993
992
|
description=LangString("consecutive numbering of pages@en", "Konsekutive Nummerierung der Seiten@de"))
|
|
994
993
|
pagedescription = PropertyClass(con=self._connection,
|
|
995
994
|
project=self._project,
|
|
996
|
-
property_class_iri=
|
|
995
|
+
property_class_iri=Xsd_QName('test:pageDescription'),
|
|
997
996
|
datatype=XsdDatatypes.langString,
|
|
998
997
|
languageIn=LanguageIn(Language.EN, Language.DE),
|
|
999
998
|
uniqueLang=Xsd_boolean(True))
|
|
1000
999
|
content = PropertyClass(con=self._connection,
|
|
1001
1000
|
project=self._project,
|
|
1002
|
-
property_class_iri=
|
|
1001
|
+
property_class_iri=Xsd_QName('test:pageContent'),
|
|
1003
1002
|
datatype=XsdDatatypes.string)
|
|
1004
1003
|
inBook = PropertyClass(con=self._connection,
|
|
1005
1004
|
project=self._project,
|
|
1006
|
-
property_class_iri=
|
|
1007
|
-
toClass=
|
|
1005
|
+
property_class_iri=Xsd_QName('test:pageInBook'),
|
|
1006
|
+
toClass=Xsd_QName('test:Book'))
|
|
1008
1007
|
page = ResourceClass(con=self._connection,
|
|
1009
1008
|
project=self._project,
|
|
1010
|
-
owlclass_iri=
|
|
1009
|
+
owlclass_iri=Xsd_QName("test:Page"),
|
|
1011
1010
|
#superclass=Iri('oldap:Thing'), # no longer necessary TODO: Test it!!!!
|
|
1012
1011
|
label=LangString(["Project@en", "Projekt@de"]),
|
|
1013
1012
|
comment=LangString(["A page of a book@en", "Seite eines Buches@de"]),
|
|
@@ -1021,19 +1020,19 @@ class TestDataModel(unittest.TestCase):
|
|
|
1021
1020
|
|
|
1022
1021
|
title = PropertyClass(con=self._connection,
|
|
1023
1022
|
project=self._project,
|
|
1024
|
-
property_class_iri=
|
|
1023
|
+
property_class_iri=Xsd_QName('test:title'),
|
|
1025
1024
|
datatype=XsdDatatypes.string)
|
|
1026
1025
|
author = PropertyClass(con=self._connection,
|
|
1027
1026
|
project=self._project,
|
|
1028
|
-
property_class_iri=
|
|
1027
|
+
property_class_iri=Xsd_QName('test:author'),
|
|
1029
1028
|
toClass=Iri('test:Person'))
|
|
1030
1029
|
pubDate = PropertyClass(con=self._connection,
|
|
1031
1030
|
project=self._project,
|
|
1032
|
-
property_class_iri=
|
|
1031
|
+
property_class_iri=Xsd_QName('test:pubDate'),
|
|
1033
1032
|
datatype=XsdDatatypes.date)
|
|
1034
1033
|
book = ResourceClass(con=self._connection,
|
|
1035
1034
|
project=self._project,
|
|
1036
|
-
owlclass_iri=
|
|
1035
|
+
owlclass_iri=Xsd_QName('test:Book'),
|
|
1037
1036
|
#superclass=Iri('oldap:Thing'),
|
|
1038
1037
|
label=LangString(["Book@en", "Buch@de"]),
|
|
1039
1038
|
closed=Xsd_boolean(True),
|
|
@@ -1044,12 +1043,12 @@ class TestDataModel(unittest.TestCase):
|
|
|
1044
1043
|
|
|
1045
1044
|
person = ResourceClass(con=self._connection,
|
|
1046
1045
|
project=self._project,
|
|
1047
|
-
owlclass_iri=
|
|
1046
|
+
owlclass_iri=Xsd_QName('test:Person'),
|
|
1048
1047
|
#superclass=Iri('oldap:Thing'), # no longer necessary TODO: Test it!!!!
|
|
1049
1048
|
label=LangString(["Person@en", "Person@de"]),
|
|
1050
1049
|
hasproperties=[
|
|
1051
|
-
HasProperty(con=self._connection, project=self._project, prop=
|
|
1052
|
-
HasProperty(con=self._connection, project=self._project, prop=
|
|
1050
|
+
HasProperty(con=self._connection, project=self._project, prop=Xsd_QName('schema:familyName'), minCount=Xsd_integer(1), maxCount=Xsd_integer(1), order=1),
|
|
1051
|
+
HasProperty(con=self._connection, project=self._project, prop=Xsd_QName('schema:givenName'), minCount=Xsd_integer(1), order=2)])
|
|
1053
1052
|
|
|
1054
1053
|
dm = DataModel(con=self._connection,
|
|
1055
1054
|
project=self._project,
|