fix: address 4 defects from CodeRabbit review
- reforge_discovery_ring_async: add non-production guard matching sync version - is_trial_active/is_trial_expired: check trial_ended flag - has_primary_s3: include primary_s3_region in validation - gift card migration downgrade: add missing json_gift_cards drop + existence guards
This commit is contained in:
parent
df8f4993c6
commit
92dc61fc50
3 changed files with 32 additions and 6 deletions
|
|
@ -305,6 +305,8 @@ class Shop(RBase, Base):
|
||||||
return False
|
return False
|
||||||
if self.trial_started_timestamp is None:
|
if self.trial_started_timestamp is None:
|
||||||
return False
|
return False
|
||||||
|
if self.trial_ended:
|
||||||
|
return False
|
||||||
import time
|
import time
|
||||||
now = int(time.time() * 1000)
|
now = int(time.time() * 1000)
|
||||||
return now < self.trial_expiry_timestamp
|
return now < self.trial_expiry_timestamp
|
||||||
|
|
@ -313,6 +315,8 @@ class Shop(RBase, Base):
|
||||||
def is_trial_expired(self):
|
def is_trial_expired(self):
|
||||||
if self.plan_active or self.trial_started_timestamp is None:
|
if self.plan_active or self.trial_started_timestamp is None:
|
||||||
return False
|
return False
|
||||||
|
if self.trial_ended:
|
||||||
|
return True
|
||||||
import time
|
import time
|
||||||
now = int(time.time() * 1000)
|
now = int(time.time() * 1000)
|
||||||
return now >= self.trial_expiry_timestamp
|
return now >= self.trial_expiry_timestamp
|
||||||
|
|
@ -341,6 +345,7 @@ class Shop(RBase, Base):
|
||||||
return bool(
|
return bool(
|
||||||
self.primary_s3_enabled
|
self.primary_s3_enabled
|
||||||
and self.primary_s3_endpoint
|
and self.primary_s3_endpoint
|
||||||
|
and self.primary_s3_region
|
||||||
and self.primary_s3_bucket
|
and self.primary_s3_bucket
|
||||||
and self.primary_s3_access_key
|
and self.primary_s3_access_key
|
||||||
and self.primary_s3_secret_key
|
and self.primary_s3_secret_key
|
||||||
|
|
@ -884,6 +889,11 @@ def reforge_discovery_ring_async(shop_id, session_factory):
|
||||||
shop = session.get(Shop, shop_id)
|
shop = session.get(Shop, shop_id)
|
||||||
if shop is None:
|
if shop is None:
|
||||||
return
|
return
|
||||||
|
if shop.environment is not None and shop.is_non_production:
|
||||||
|
shop.discovery_ring = []
|
||||||
|
session.commit()
|
||||||
|
log.info("Ring cleared for non-production shop %s", shop.name)
|
||||||
|
return
|
||||||
ring = compute_discovery_ring(shop)
|
ring = compute_discovery_ring(shop)
|
||||||
shop.discovery_ring = ring
|
shop.discovery_ring = ring
|
||||||
session.commit()
|
session.commit()
|
||||||
|
|
|
||||||
|
|
@ -100,9 +100,17 @@ def upgrade():
|
||||||
|
|
||||||
|
|
||||||
def downgrade():
|
def downgrade():
|
||||||
op.drop_table("mps_cart_gift_card")
|
if _table_exists("mps_cart_gift_card"):
|
||||||
op.drop_table("mps_gift_card_transaction")
|
op.drop_table("mps_cart_gift_card")
|
||||||
op.drop_table("mps_gift_card")
|
if _table_exists("mps_gift_card_transaction"):
|
||||||
op.drop_column("mps_shop", "gift_card_enabled")
|
op.drop_table("mps_gift_card_transaction")
|
||||||
op.drop_column("mps_shop", "gift_card_min_in_cents")
|
if _table_exists("mps_gift_card"):
|
||||||
op.drop_column("mps_shop", "gift_card_max_in_cents")
|
op.drop_table("mps_gift_card")
|
||||||
|
if _column_exists("mps_cart", "json_gift_cards"):
|
||||||
|
op.drop_column("mps_cart", "json_gift_cards")
|
||||||
|
if _column_exists("mps_shop", "gift_card_enabled"):
|
||||||
|
op.drop_column("mps_shop", "gift_card_enabled")
|
||||||
|
if _column_exists("mps_shop", "gift_card_min_in_cents"):
|
||||||
|
op.drop_column("mps_shop", "gift_card_min_in_cents")
|
||||||
|
if _column_exists("mps_shop", "gift_card_max_in_cents"):
|
||||||
|
op.drop_column("mps_shop", "gift_card_max_in_cents")
|
||||||
|
|
|
||||||
|
|
@ -2596,6 +2596,8 @@ class TestAsyncDiscoveryRing(unittest.TestCase):
|
||||||
mock_shop = mock.Mock()
|
mock_shop = mock.Mock()
|
||||||
mock_shop.products = []
|
mock_shop.products = []
|
||||||
mock_shop.name = "test"
|
mock_shop.name = "test"
|
||||||
|
mock_shop.environment = 0
|
||||||
|
mock_shop.is_non_production = False
|
||||||
|
|
||||||
# Patch Session and compute to block until we signal
|
# Patch Session and compute to block until we signal
|
||||||
with mock.patch("make_post_sell.models.shop.SASession") as MockSession:
|
with mock.patch("make_post_sell.models.shop.SASession") as MockSession:
|
||||||
|
|
@ -2642,6 +2644,8 @@ class TestAsyncDiscoveryRing(unittest.TestCase):
|
||||||
mock_shop = mock.Mock()
|
mock_shop = mock.Mock()
|
||||||
mock_shop.products = []
|
mock_shop.products = []
|
||||||
mock_shop.name = "test"
|
mock_shop.name = "test"
|
||||||
|
mock_shop.environment = 0
|
||||||
|
mock_shop.is_non_production = False
|
||||||
|
|
||||||
call_count = [0]
|
call_count = [0]
|
||||||
|
|
||||||
|
|
@ -2701,6 +2705,8 @@ class TestAsyncDiscoveryRing(unittest.TestCase):
|
||||||
mock_shop = mock.Mock()
|
mock_shop = mock.Mock()
|
||||||
mock_shop.products = []
|
mock_shop.products = []
|
||||||
mock_shop.name = "test"
|
mock_shop.name = "test"
|
||||||
|
mock_shop.environment = 0
|
||||||
|
mock_shop.is_non_production = False
|
||||||
|
|
||||||
call_count = [0]
|
call_count = [0]
|
||||||
|
|
||||||
|
|
@ -2758,6 +2764,8 @@ class TestAsyncDiscoveryRing(unittest.TestCase):
|
||||||
mock_shop = mock.Mock()
|
mock_shop = mock.Mock()
|
||||||
mock_shop.products = []
|
mock_shop.products = []
|
||||||
mock_shop.name = "test"
|
mock_shop.name = "test"
|
||||||
|
mock_shop.environment = 0
|
||||||
|
mock_shop.is_non_production = False
|
||||||
|
|
||||||
call_count = [0]
|
call_count = [0]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue