@@ -65,3 +65,39 @@ def test_bundle_config_create_multiple(self):
65
65
66
66
query_results = CacheConfig .objects .all ()
67
67
assert len (query_results ) == 4
68
+
69
+ def test_bundle_config_get_or_create (self ):
70
+ # Create 1 -- default as is_caching=True
71
+ BundleAnalysisCacheConfigService .create_if_not_exists (repo_id = 1 , name = "bundleA" )
72
+ query_results = CacheConfig .objects .all ()
73
+ assert len (query_results ) == 1
74
+ assert query_results [0 ].repo_id == 1
75
+ assert query_results [0 ].bundle_name == "bundleA"
76
+ assert query_results [0 ].is_caching == True
77
+
78
+ # Create 2 -- already exist don't change is_caching value
79
+ BundleAnalysisCacheConfigService .create_if_not_exists (
80
+ repo_id = 1 , name = "bundleA" , is_caching = False
81
+ )
82
+ query_results = CacheConfig .objects .all ()
83
+ assert len (query_results ) == 1
84
+ assert query_results [0 ].repo_id == 1
85
+ assert query_results [0 ].bundle_name == "bundleA"
86
+ assert query_results [0 ].is_caching == True
87
+
88
+ # Create 3 -- new bundle
89
+ BundleAnalysisCacheConfigService .create_if_not_exists (
90
+ repo_id = 1 , name = "bundleB" , is_caching = False
91
+ )
92
+ query_results = CacheConfig .objects .all ()
93
+ assert len (query_results ) == 2
94
+ query_results = CacheConfig .objects .filter (bundle_name = "bundleA" ).all ()
95
+ assert len (query_results ) == 1
96
+ assert query_results [0 ].repo_id == 1
97
+ assert query_results [0 ].bundle_name == "bundleA"
98
+ assert query_results [0 ].is_caching == True
99
+ query_results = CacheConfig .objects .filter (bundle_name = "bundleB" ).all ()
100
+ assert len (query_results ) == 1
101
+ assert query_results [0 ].repo_id == 1
102
+ assert query_results [0 ].bundle_name == "bundleB"
103
+ assert query_results [0 ].is_caching == False
0 commit comments