11from unittest .mock import AsyncMock
22
33import pytest
4- from whenever import Instant
54
65from infrahub .core .branch import Branch
76from infrahub .core .diff .coordinator import DiffCoordinator
@@ -217,8 +216,8 @@ async def test_diff_tree_no_changes(
217216 enriched_diff_metadata = await diff_coordinator .update_branch_diff (
218217 base_branch = default_branch , diff_branch = diff_branch
219218 )
220- from_time = Instant . parse_common_iso (diff_branch .branched_from )
221- to_time = Instant . parse_common_iso ( enriched_diff_metadata .to_time . to_string ())
219+ from_time = Timestamp (diff_branch .branched_from )
220+ to_time = enriched_diff_metadata .to_time
222221
223222 params = await prepare_graphql_params (
224223 db = db , include_mutation = False , include_subscription = False , branch = default_branch
@@ -235,8 +234,8 @@ async def test_diff_tree_no_changes(
235234 assert result .data ["DiffTree" ] == {
236235 "base_branch" : default_branch .name ,
237236 "diff_branch" : diff_branch .name ,
238- "from_time" : from_time .isoformat (),
239- "to_time" : to_time .isoformat (),
237+ "from_time" : from_time .to_datetime (). isoformat (),
238+ "to_time" : to_time .to_datetime (). isoformat (),
240239 "num_added" : 0 ,
241240 "num_removed" : 0 ,
242241 "num_updated" : 0 ,
@@ -294,10 +293,10 @@ async def test_diff_tree_one_attr_change(
294293 main_crit .color .value = "#fedcba"
295294 branch_crit = await NodeManager .get_one (db = db , id = criticality_low .id , branch = diff_branch )
296295 branch_crit .color .value = "#abcdef"
297- before_change_datetime = Instant . now ()
296+ before_change_datetime = Timestamp ()
298297 await main_crit .save (db = db )
299298 await branch_crit .save (db = db )
300- after_change_datetime = Instant . now ()
299+ after_change_datetime = Timestamp ()
301300
302301 enriched_diff_metadata = await diff_coordinator .update_branch_diff (
303302 base_branch = default_branch , diff_branch = diff_branch
@@ -329,29 +328,29 @@ async def test_diff_tree_one_attr_change(
329328 root_value = None ,
330329 variable_values = {"branch" : diff_branch .name },
331330 )
332- from_time = Instant . parse_common_iso (diff_branch .branched_from )
333- to_time = Instant . parse_common_iso ( enriched_diff_metadata .to_time . to_string ())
331+ from_time = Timestamp (diff_branch .branched_from )
332+ to_time = enriched_diff_metadata .to_time
334333
335334 assert result .errors is None
336335
337336 assert result .data ["DiffTree" ]
338337 assert result .data ["DiffTree" ]["nodes" ]
339338 node_diff = result .data ["DiffTree" ]["nodes" ][0 ]
340339 node_changed_at = node_diff ["last_changed_at" ]
341- assert Instant . parse_common_iso (node_changed_at ) < before_change_datetime
340+ assert Timestamp (node_changed_at ) < before_change_datetime
342341 assert node_diff ["attributes" ]
343342 attribute_diff = node_diff ["attributes" ][0 ]
344343 attribute_changed_at = attribute_diff ["last_changed_at" ]
345- assert Instant . parse_common_iso (attribute_changed_at ) < before_change_datetime
344+ assert Timestamp (attribute_changed_at ) < before_change_datetime
346345 assert attribute_diff ["properties" ]
347346 property_diff = attribute_diff ["properties" ][0 ]
348347 property_changed_at = property_diff ["last_changed_at" ]
349- assert before_change_datetime < Instant . parse_common_iso (property_changed_at ) < after_change_datetime
348+ assert before_change_datetime < Timestamp (property_changed_at ) < after_change_datetime
350349 assert result .data ["DiffTree" ] == {
351350 "base_branch" : "main" ,
352351 "diff_branch" : diff_branch .name ,
353- "from_time" : from_time .isoformat (),
354- "to_time" : to_time .isoformat (),
352+ "from_time" : from_time .to_datetime (). isoformat (),
353+ "to_time" : to_time .to_datetime (). isoformat (),
355354 "num_added" : 0 ,
356355 "num_removed" : 0 ,
357356 "num_updated" : 1 ,
@@ -426,9 +425,9 @@ async def test_diff_tree_one_relationship_change(
426425):
427426 branch_car = await NodeManager .get_one (db = db , id = car_accord_main .id , branch = diff_branch )
428427 await branch_car .owner .update (db = db , data = [person_jane_main ])
429- before_change_datetime = Instant . now ()
428+ before_change_datetime = Timestamp ()
430429 await branch_car .save (db = db )
431- after_change_datetime = Instant . now ()
430+ after_change_datetime = Timestamp ()
432431 accord_label = await branch_car .render_display_label (db = db )
433432 john_label = await person_john_main .render_display_label (db = db )
434433 jane_label = await person_jane_main .render_display_label (db = db )
@@ -446,8 +445,8 @@ async def test_diff_tree_one_relationship_change(
446445 root_value = None ,
447446 variable_values = {"branch" : diff_branch .name },
448447 )
449- from_time = Instant . parse_common_iso (diff_branch .branched_from )
450- to_time = Instant . parse_common_iso ( enriched_diff_metadata .to_time . to_string ())
448+ from_time = Timestamp (diff_branch .branched_from )
449+ to_time = enriched_diff_metadata .to_time
451450
452451 assert result .errors is None
453452
@@ -457,8 +456,8 @@ async def test_diff_tree_one_relationship_change(
457456 assert diff_tree_response == {
458457 "base_branch" : "main" ,
459458 "diff_branch" : diff_branch .name ,
460- "from_time" : from_time .format_common_iso (),
461- "to_time" : to_time .format_common_iso (),
459+ "from_time" : from_time .to_datetime (). isoformat (),
460+ "to_time" : to_time .to_datetime (). isoformat (),
462461 "num_added" : 0 ,
463462 "num_removed" : 0 ,
464463 "num_updated" : 3 ,
@@ -473,7 +472,7 @@ async def test_diff_tree_one_relationship_change(
473472 car_response = node_response_by_id [car_accord_main .id ]
474473 car_relationship_response = car_response .pop ("relationships" )
475474 car_changed_at = car_response ["last_changed_at" ]
476- assert Instant . parse_common_iso (car_changed_at ) < before_change_datetime
475+ assert Timestamp (car_changed_at ) < before_change_datetime
477476 assert car_response == {
478477 "uuid" : car_accord_main .id ,
479478 "kind" : car_accord_main .get_kind (),
@@ -492,7 +491,7 @@ async def test_diff_tree_one_relationship_change(
492491 assert set (car_relationships_by_name .keys ()) == {"owner" }
493492 owner_rel = car_relationships_by_name ["owner" ]
494493 owner_changed_at = owner_rel ["last_changed_at" ]
495- assert before_change_datetime < Instant . parse_common_iso (owner_changed_at ) < after_change_datetime
494+ assert before_change_datetime < Timestamp (owner_changed_at ) < after_change_datetime
496495 owner_elements = owner_rel .pop ("elements" )
497496 assert owner_rel == {
498497 "name" : "owner" ,
@@ -504,7 +503,7 @@ async def test_diff_tree_one_relationship_change(
504503 assert len (owner_elements ) == 1
505504 owner_element = owner_elements [0 ]
506505 owner_element_changed_at = owner_element ["last_changed_at" ]
507- assert before_change_datetime < Instant . parse_common_iso (owner_element_changed_at ) < after_change_datetime
506+ assert before_change_datetime < Timestamp (owner_element_changed_at ) < after_change_datetime
508507 owner_properties = owner_element .pop ("properties" )
509508 assert owner_element == {
510509 "status" : UPDATED_ACTION ,
@@ -517,7 +516,7 @@ async def test_diff_tree_one_relationship_change(
517516 assert set (owner_properties_by_type .keys ()) == {IS_RELATED_TYPE , IS_PROTECTED_TYPE , IS_VISIBLE_TYPE }
518517 owner_prop = owner_properties_by_type [IS_RELATED_TYPE ]
519518 owner_prop_changed_at = owner_prop ["last_changed_at" ]
520- assert before_change_datetime < Instant . parse_common_iso (owner_prop_changed_at ) < after_change_datetime
519+ assert before_change_datetime < Timestamp (owner_prop_changed_at ) < after_change_datetime
521520 assert owner_prop == {
522521 "property_type" : IS_RELATED_TYPE ,
523522 "last_changed_at" : owner_prop_changed_at ,
@@ -530,7 +529,7 @@ async def test_diff_tree_one_relationship_change(
530529 }
531530 owner_prop = owner_properties_by_type [IS_RELATED_TYPE ]
532531 owner_prop_changed_at = owner_prop ["last_changed_at" ]
533- assert before_change_datetime < Instant . parse_common_iso (owner_prop_changed_at ) < after_change_datetime
532+ assert before_change_datetime < Timestamp (owner_prop_changed_at ) < after_change_datetime
534533 assert owner_prop == {
535534 "property_type" : IS_RELATED_TYPE ,
536535 "last_changed_at" : owner_prop_changed_at ,
@@ -545,7 +544,7 @@ async def test_diff_tree_one_relationship_change(
545544 john_response = node_response_by_id [person_john_main .id ]
546545 john_relationship_response = john_response .pop ("relationships" )
547546 john_changed_at = john_response ["last_changed_at" ]
548- assert Instant . parse_common_iso (john_changed_at ) < before_change_datetime
547+ assert Timestamp (john_changed_at ) < before_change_datetime
549548 assert john_response == {
550549 "uuid" : person_john_main .id ,
551550 "kind" : person_john_main .get_kind (),
@@ -564,7 +563,7 @@ async def test_diff_tree_one_relationship_change(
564563 assert set (john_relationships_by_name .keys ()) == {"cars" }
565564 cars_rel = john_relationships_by_name ["cars" ]
566565 cars_changed_at = cars_rel ["last_changed_at" ]
567- assert before_change_datetime < Instant . parse_common_iso (cars_changed_at ) < after_change_datetime
566+ assert before_change_datetime < Timestamp (cars_changed_at ) < after_change_datetime
568567 cars_elements = cars_rel .pop ("elements" )
569568 assert cars_rel == {
570569 "name" : "cars" ,
@@ -576,7 +575,7 @@ async def test_diff_tree_one_relationship_change(
576575 assert len (cars_elements ) == 1
577576 cars_element = cars_elements [0 ]
578577 cars_element_changed_at = cars_element ["last_changed_at" ]
579- assert before_change_datetime < Instant . parse_common_iso (cars_element_changed_at ) < after_change_datetime
578+ assert before_change_datetime < Timestamp (cars_element_changed_at ) < after_change_datetime
580579 cars_properties = cars_element .pop ("properties" )
581580 assert cars_element == {
582581 "status" : REMOVED_ACTION ,
@@ -594,7 +593,7 @@ async def test_diff_tree_one_relationship_change(
594593 ]:
595594 cars_prop = cars_properties_by_type [property_type ]
596595 cars_prop_changed_at = cars_prop ["last_changed_at" ]
597- assert before_change_datetime < Instant . parse_common_iso (cars_prop_changed_at ) < after_change_datetime
596+ assert before_change_datetime < Timestamp (cars_prop_changed_at ) < after_change_datetime
598597 assert cars_prop == {
599598 "property_type" : property_type ,
600599 "last_changed_at" : cars_prop_changed_at ,
@@ -609,7 +608,7 @@ async def test_diff_tree_one_relationship_change(
609608 jane_response = node_response_by_id [person_jane_main .id ]
610609 jane_relationship_response = jane_response .pop ("relationships" )
611610 jane_changed_at = jane_response ["last_changed_at" ]
612- assert Instant . parse_common_iso (jane_changed_at ) < before_change_datetime
611+ assert Timestamp (jane_changed_at ) < before_change_datetime
613612 assert jane_response == {
614613 "uuid" : person_jane_main .id ,
615614 "kind" : person_jane_main .get_kind (),
@@ -628,7 +627,7 @@ async def test_diff_tree_one_relationship_change(
628627 assert set (jane_relationships_by_name .keys ()) == {"cars" }
629628 cars_rel = jane_relationships_by_name ["cars" ]
630629 cars_changed_at = cars_rel ["last_changed_at" ]
631- assert before_change_datetime < Instant . parse_common_iso (cars_changed_at ) < after_change_datetime
630+ assert before_change_datetime < Timestamp (cars_changed_at ) < after_change_datetime
632631 cars_elements = cars_rel .pop ("elements" )
633632 assert cars_rel == {
634633 "name" : "cars" ,
@@ -640,7 +639,7 @@ async def test_diff_tree_one_relationship_change(
640639 assert len (cars_elements ) == 1
641640 cars_element = cars_elements [0 ]
642641 cars_element_changed_at = cars_element ["last_changed_at" ]
643- assert before_change_datetime < Instant . parse_common_iso (cars_element_changed_at ) < after_change_datetime
642+ assert before_change_datetime < Timestamp (cars_element_changed_at ) < after_change_datetime
644643 cars_properties = cars_element .pop ("properties" )
645644 assert cars_element == {
646645 "status" : ADDED_ACTION ,
@@ -658,7 +657,7 @@ async def test_diff_tree_one_relationship_change(
658657 ]:
659658 cars_prop = cars_properties_by_type [property_type ]
660659 cars_prop_changed_at = cars_prop ["last_changed_at" ]
661- assert before_change_datetime < Instant . parse_common_iso (cars_prop_changed_at ) < after_change_datetime
660+ assert before_change_datetime < Timestamp (cars_prop_changed_at ) < after_change_datetime
662661 assert cars_prop == {
663662 "property_type" : property_type ,
664663 "last_changed_at" : cars_prop_changed_at ,
@@ -745,8 +744,8 @@ async def test_diff_tree_summary_no_changes(
745744 enriched_diff_metadata = await diff_coordinator .update_branch_diff (
746745 base_branch = default_branch , diff_branch = diff_branch
747746 )
748- from_time = Instant . parse_common_iso (diff_branch .branched_from )
749- to_time = Instant . parse_common_iso ( enriched_diff_metadata .to_time . to_string ())
747+ from_time = Timestamp (diff_branch .branched_from )
748+ to_time = enriched_diff_metadata .to_time
750749
751750 params = await prepare_graphql_params (
752751 db = db , include_mutation = False , include_subscription = False , branch = default_branch
@@ -763,8 +762,8 @@ async def test_diff_tree_summary_no_changes(
763762 assert result .data ["DiffTreeSummary" ] == {
764763 "base_branch" : default_branch .name ,
765764 "diff_branch" : diff_branch .name ,
766- "from_time" : from_time .isoformat (),
767- "to_time" : to_time .isoformat (),
765+ "from_time" : from_time .to_datetime (). isoformat (),
766+ "to_time" : to_time .to_datetime (). isoformat (),
768767 "num_added" : 0 ,
769768 "num_removed" : 0 ,
770769 "num_updated" : 0 ,
0 commit comments