Skip to content
This repository was archived by the owner on May 5, 2025. It is now read-only.

Commit 67879c1

Browse files
authored
[Bundle Analysis] Cache config service get_or_create (#464)
* [Bundle Analysis] Cache config service get_or_create * rename function
1 parent efe4835 commit 67879c1

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

shared/django_apps/bundle_analysis/service/bundle_analysis.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,9 @@ def update_cache_option(repo_id, name, is_caching=True) -> None:
77
CacheConfig.objects.update_or_create(
88
repo_id=repo_id, bundle_name=name, defaults={"is_caching": is_caching}
99
)
10+
11+
@staticmethod
12+
def create_if_not_exists(repo_id, name, is_caching=True) -> None:
13+
CacheConfig.objects.get_or_create(
14+
repo_id=repo_id, bundle_name=name, defaults={"is_caching": is_caching}
15+
)

shared/django_apps/bundle_analysis/tests/service/test_bundle_config.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,39 @@ def test_bundle_config_create_multiple(self):
6565

6666
query_results = CacheConfig.objects.all()
6767
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

Comments
 (0)