@@ -283,7 +283,7 @@ async def test_new_project(
283
283
"creationDate" : now_str (),
284
284
"lastChangeDate" : now_str (),
285
285
"thumbnail" : "" ,
286
- "accessRights" : {},
286
+ "accessRights" : {"12" : "some rights" },
287
287
"workbench" : {},
288
288
"tags" : [],
289
289
}
@@ -297,7 +297,8 @@ async def test_new_project(
297
297
298
298
# updated fields
299
299
assert default_project ["uuid" ] != new_project ["uuid" ]
300
- assert default_project ["prjOwner" ] != logged_user ["name" ]
300
+ assert default_project ["prjOwner" ] != logged_user ["email" ]
301
+ assert new_project ["prjOwner" ] == logged_user ["email" ]
301
302
assert to_datetime (default_project ["creationDate" ]) < to_datetime (
302
303
new_project ["creationDate" ]
303
304
)
@@ -351,6 +352,7 @@ async def test_new_project_from_template(
351
352
# different ownership
352
353
assert project ["prjOwner" ] == logged_user ["email" ]
353
354
assert project ["prjOwner" ] != template_project ["prjOwner" ]
355
+ assert project ["accessRights" ] == template_project ["accessRights" ]
354
356
355
357
# different timestamps
356
358
assert to_datetime (template_project ["creationDate" ]) < to_datetime (
@@ -403,6 +405,7 @@ async def test_new_project_from_template_with_body(
403
405
"prjOwner" : "" ,
404
406
"creationDate" : "2019-06-03T09:59:31.987Z" ,
405
407
"lastChangeDate" : "2019-06-03T09:59:31.987Z" ,
408
+ "accessRights" : {"123" : "some new access rights" },
406
409
"workbench" : {},
407
410
"tags" : [],
408
411
}
@@ -423,6 +426,9 @@ async def test_new_project_from_template_with_body(
423
426
# different ownership
424
427
assert project ["prjOwner" ] == logged_user ["email" ]
425
428
assert project ["prjOwner" ] != template_project ["prjOwner" ]
429
+ # different access rights
430
+ assert project ["accessRights" ] != template_project ["accessRights" ]
431
+ assert project ["accessRights" ] == predefined ["accessRights" ]
426
432
427
433
# different timestamps
428
434
assert to_datetime (template_project ["creationDate" ]) < to_datetime (
@@ -448,7 +454,7 @@ async def test_new_project_from_template_with_body(
448
454
[
449
455
(UserRole .ANONYMOUS , web .HTTPUnauthorized ),
450
456
(UserRole .GUEST , web .HTTPForbidden ),
451
- (UserRole .USER , web .HTTPForbidden ),
457
+ (UserRole .USER , web .HTTPCreated ),
452
458
(UserRole .TESTER , web .HTTPCreated ),
453
459
],
454
460
)
@@ -480,12 +486,83 @@ async def test_new_template_from_project(
480
486
assert len (templates ) == 1
481
487
assert templates [0 ] == template_project
482
488
483
- # identical in all fields except UUIDs?
484
- # api/specs/webserver/v0/components/schemas/project-v0.0.1.json
485
- # assert_replaced(user_project, template_project)
489
+ assert template_project ["name" ] == user_project ["name" ]
490
+ assert template_project ["description" ] == user_project ["description" ]
491
+ assert template_project ["prjOwner" ] == logged_user ["email" ]
492
+ assert template_project ["accessRights" ] == user_project ["accessRights" ]
493
+
494
+ # different timestamps
495
+ assert to_datetime (user_project ["creationDate" ]) < to_datetime (
496
+ template_project ["creationDate" ]
497
+ )
498
+ assert to_datetime (user_project ["lastChangeDate" ]) < to_datetime (
499
+ template_project ["lastChangeDate" ]
500
+ )
501
+
502
+ # different uuids for project and nodes!?
503
+ assert template_project ["uuid" ] != user_project ["uuid" ]
504
+
505
+ # check uuid replacement
506
+ for node_name in template_project ["workbench" ]:
507
+ try :
508
+ uuidlib .UUID (node_name )
509
+ except ValueError :
510
+ pytest .fail ("Invalid uuid in workbench node {}" .format (node_name ))
511
+
512
+ # do the same with a body
513
+ predefined = {
514
+ "uuid" : "" ,
515
+ "name" : "My super duper new template" ,
516
+ "description" : "Some lines from user" ,
517
+ "thumbnail" : "" ,
518
+ "prjOwner" : "" ,
519
+ "creationDate" : "2019-06-03T09:59:31.987Z" ,
520
+ "lastChangeDate" : "2019-06-03T09:59:31.987Z" ,
521
+ "workbench" : {},
522
+ "accessRights" : {"12" : "rwx" },
523
+ "tags" : [],
524
+ }
525
+
526
+ resp = await client .post (url , json = predefined )
527
+ data , error = await assert_status (resp , expected )
528
+
529
+ if not error :
530
+ template_project = data
531
+ # uses predefined
532
+ assert template_project ["name" ] == predefined ["name" ]
533
+ assert template_project ["description" ] == predefined ["description" ]
534
+ assert template_project ["prjOwner" ] == logged_user ["email" ]
535
+ assert template_project ["accessRights" ] == predefined ["accessRights" ]
536
+
537
+ modified = [
538
+ "prjOwner" ,
539
+ "creationDate" ,
540
+ "lastChangeDate" ,
541
+ "uuid" ,
542
+ "accessRights" ,
543
+ ]
544
+
545
+ # different ownership
546
+ assert template_project ["prjOwner" ] == logged_user ["email" ]
547
+ assert template_project ["prjOwner" ] == user_project ["prjOwner" ]
486
548
487
- # TODO: workbench nodes should not have progress??
488
- # TODO: check in detail all fields in a node
549
+ # different timestamps
550
+ assert to_datetime (user_project ["creationDate" ]) < to_datetime (
551
+ template_project ["creationDate" ]
552
+ )
553
+ assert to_datetime (user_project ["lastChangeDate" ]) < to_datetime (
554
+ template_project ["lastChangeDate" ]
555
+ )
556
+
557
+ # different uuids for project and nodes!?
558
+ assert template_project ["uuid" ] != user_project ["uuid" ]
559
+
560
+ # check uuid replacement
561
+ for node_name in template_project ["workbench" ]:
562
+ try :
563
+ uuidlib .UUID (node_name )
564
+ except ValueError :
565
+ pytest .fail ("Invalid uuid in workbench node {}" .format (node_name ))
489
566
490
567
491
568
# PUT --------
0 commit comments