1
- import unittest
2
1
from typing import Any
3
2
4
3
import pystac
@@ -15,71 +14,66 @@ def create_catalog(suffix: Any, include_href: bool = True) -> pystac.Catalog:
15
14
)
16
15
17
16
18
- class ResolvedObjectCacheTest (unittest .TestCase ):
19
- def tests_get_or_cache_returns_previously_cached_href (self ) -> None :
20
- cache = ResolvedObjectCache ()
21
- cat = create_catalog (1 )
22
- cache_result_1 = cache .get_or_cache (cat )
23
- self .assertIs (cache_result_1 , cat )
24
-
25
- identical_cat = create_catalog (1 )
26
- cache_result_2 = cache .get_or_cache (identical_cat )
27
- self .assertIs (cache_result_2 , cat )
28
-
29
- def test_get_or_cache_returns_previously_cached_id (self ) -> None :
30
- cache = ResolvedObjectCache ()
31
- cat = create_catalog (1 , include_href = False )
32
- cache_result_1 = cache .get_or_cache (cat )
33
- self .assertIs (cache_result_1 , cat )
34
-
35
- identical_cat = create_catalog (1 , include_href = False )
36
- cache_result_2 = cache .get_or_cache (identical_cat )
37
- self .assertIs (cache_result_2 , cat )
38
-
39
-
40
- class ResolvedObjectCollectionCacheTest (unittest .TestCase ):
41
- def test_merge (self ) -> None :
42
- cat1 = create_catalog (1 , include_href = False )
43
- cat2 = create_catalog (2 )
44
- cat3 = create_catalog (3 , include_href = False )
45
- cat4 = create_catalog (4 )
46
-
47
- identical_cat1 = create_catalog (1 , include_href = False )
48
- identical_cat2 = create_catalog (2 )
49
-
50
- cached_ids_1 : dict [str , Any ] = {cat1 .id : cat1 }
51
- cached_hrefs_1 : dict [str , Any ] = {get_opt (cat2 .get_self_href ()): cat2 }
52
- cached_ids_2 : dict [str , Any ] = {cat3 .id : cat3 , cat1 .id : identical_cat1 }
53
- cached_hrefs_2 : dict [str , Any ] = {
54
- get_opt (cat4 .get_self_href ()): cat4 ,
55
- get_opt (cat2 .get_self_href ()): identical_cat2 ,
56
- }
57
- cache1 = ResolvedObjectCollectionCache (
58
- ResolvedObjectCache (), cached_ids = cached_ids_1 , cached_hrefs = cached_hrefs_1
59
- )
60
- cache2 = ResolvedObjectCollectionCache (
61
- ResolvedObjectCache (), cached_ids = cached_ids_2 , cached_hrefs = cached_hrefs_2
62
- )
63
-
64
- merged = ResolvedObjectCollectionCache .merge (
65
- ResolvedObjectCache (), cache1 , cache2
66
- )
67
-
68
- self .assertEqual (
69
- set (merged .cached_ids .keys ()), {cat .id for cat in [cat1 , cat3 ]}
70
- )
71
- self .assertIs (merged .get_by_id (cat1 .id ), cat1 )
72
- self .assertEqual (
73
- set (merged .cached_hrefs .keys ()),
74
- {cat .get_self_href () for cat in [cat2 , cat4 ]},
75
- )
76
- self .assertIs (merged .get_by_href (get_opt (cat2 .get_self_href ())), cat2 )
77
-
78
- def test_cache (self ) -> None :
79
- cache = ResolvedObjectCache ().as_collection_cache ()
80
- collection = TestCases .case_8 ()
81
- collection_json = collection .to_dict ()
82
- cache .cache (collection_json , collection .get_self_href ())
83
- cached = cache .get_by_id (collection .id )
84
- assert isinstance (cached , dict )
85
- self .assertEqual (cached ["id" ], collection .id )
17
+ def test_ResolvedObjectCache_get_or_cache_returns_previously_cached_href () -> None :
18
+ cache = ResolvedObjectCache ()
19
+ cat = create_catalog (1 )
20
+ cache_result_1 = cache .get_or_cache (cat )
21
+ assert cache_result_1 is cat
22
+
23
+ identical_cat = create_catalog (1 )
24
+ cache_result_2 = cache .get_or_cache (identical_cat )
25
+ assert cache_result_2 is cat
26
+
27
+
28
+ def test_ResolvedObjectCache_get_or_cache_returns_previously_cached_id () -> None :
29
+ cache = ResolvedObjectCache ()
30
+ cat = create_catalog (1 , include_href = False )
31
+ cache_result_1 = cache .get_or_cache (cat )
32
+ assert cache_result_1 is cat
33
+
34
+ identical_cat = create_catalog (1 , include_href = False )
35
+ cache_result_2 = cache .get_or_cache (identical_cat )
36
+ assert cache_result_2 is cat
37
+
38
+
39
+ def test_ResolvedObjectCollectionCache_merge () -> None :
40
+ cat1 = create_catalog (1 , include_href = False )
41
+ cat2 = create_catalog (2 )
42
+ cat3 = create_catalog (3 , include_href = False )
43
+ cat4 = create_catalog (4 )
44
+
45
+ identical_cat1 = create_catalog (1 , include_href = False )
46
+ identical_cat2 = create_catalog (2 )
47
+
48
+ cached_ids_1 : dict [str , Any ] = {cat1 .id : cat1 }
49
+ cached_hrefs_1 : dict [str , Any ] = {get_opt (cat2 .get_self_href ()): cat2 }
50
+ cached_ids_2 : dict [str , Any ] = {cat3 .id : cat3 , cat1 .id : identical_cat1 }
51
+ cached_hrefs_2 : dict [str , Any ] = {
52
+ get_opt (cat4 .get_self_href ()): cat4 ,
53
+ get_opt (cat2 .get_self_href ()): identical_cat2 ,
54
+ }
55
+ cache1 = ResolvedObjectCollectionCache (
56
+ ResolvedObjectCache (), cached_ids = cached_ids_1 , cached_hrefs = cached_hrefs_1
57
+ )
58
+ cache2 = ResolvedObjectCollectionCache (
59
+ ResolvedObjectCache (), cached_ids = cached_ids_2 , cached_hrefs = cached_hrefs_2
60
+ )
61
+
62
+ merged = ResolvedObjectCollectionCache .merge (ResolvedObjectCache (), cache1 , cache2 )
63
+
64
+ assert set (merged .cached_ids .keys ()) == {cat .id for cat in [cat1 , cat3 ]}
65
+ assert merged .get_by_id (cat1 .id ) is cat1
66
+ assert set (merged .cached_hrefs .keys ()) == {
67
+ cat .get_self_href () for cat in [cat2 , cat4 ]
68
+ }
69
+ assert merged .get_by_href (get_opt (cat2 .get_self_href ())) is cat2
70
+
71
+
72
+ def test_ResolvedObjectCollectionCache_cache () -> None :
73
+ cache = ResolvedObjectCache ().as_collection_cache ()
74
+ collection = TestCases .case_8 ()
75
+ collection_json = collection .to_dict ()
76
+ cache .cache (collection_json , collection .get_self_href ())
77
+ cached = cache .get_by_id (collection .id )
78
+ assert isinstance (cached , dict )
79
+ assert cached ["id" ] == collection .id
0 commit comments