def test_protected_fields(): activate("en") shop = Shop.objects.create( name="testshop", identifier="testshop", status=ShopStatus.ENABLED, public_name="test shop", domain="derp", currency="EUR" ) get_currency("EUR") get_currency("USD") assert shop.name == "testshop" assert shop.currency == "EUR" assert not ConfigurationItem.objects.filter(shop=shop, key="languages").exists() shop_form = ShopBaseForm(instance=shop, languages=settings.LANGUAGES) assert not shop_form._get_protected_fields() # No protected fields just yet, right? data = get_form_data(shop_form, prepared=True) shop_form = ShopBaseForm(data=data, instance=shop, languages=settings.LANGUAGES) _test_cleanliness(shop_form) shop_form.save() # Now let's make it protected! create_product(printable_gibberish(), shop=shop, supplier=get_default_supplier()) order = create_random_order(customer=create_random_person(), shop=shop) assert order.shop == shop # And try again... data["currency"] = "USD" shop_form = ShopBaseForm(data=data, instance=shop, languages=settings.LANGUAGES) assert shop_form._get_protected_fields() # So protected! _test_cleanliness(shop_form) shop = shop_form.save() assert shop.currency == "EUR" # But the shop form ignored the change . . .
def test_default_language_english(): activate("en") test_name_en = "Test shop" shop = get_default_shop() shop.name = test_name_en shop.public_name = test_name_en shop.save() shop_form = ShopBaseForm(instance=shop, languages=settings.LANGUAGES) data = get_form_data(shop_form, prepared=True) assert data.get("name__en") == test_name_en assert not data.get("name__fi") shop_form = ShopBaseForm(data=data, instance=shop, languages=settings.LANGUAGES) shop_form.full_clean() assert shop_form.is_valid() and not shop_form.errors
def test_protected_fields(): activate("en") shop = Shop.objects.create(name="testshop", identifier="testshop", status=ShopStatus.ENABLED, public_name="test shop", domain="derp", currency="EUR") get_currency("EUR") get_currency("USD") assert shop.name == "testshop" assert shop.currency == "EUR" assert not ConfigurationItem.objects.filter(shop=shop, key="languages").exists() shop_form = ShopBaseForm(instance=shop, languages=settings.LANGUAGES) assert not shop_form._get_protected_fields( ) # No protected fields just yet, right? data = get_form_data(shop_form, prepared=True) shop_form = ShopBaseForm(data=data, instance=shop, languages=settings.LANGUAGES) _test_cleanliness(shop_form) shop_form.save() # Now let's make it protected! create_product(printable_gibberish(), shop=shop, supplier=get_default_supplier()) order = create_random_order(customer=create_random_person(), shop=shop) assert order.shop == shop # And try again... data["currency"] = "USD" shop_form = ShopBaseForm(data=data, instance=shop, languages=settings.LANGUAGES) assert shop_form._get_protected_fields() # So protected! _test_cleanliness(shop_form) shop = shop_form.save() assert shop.currency == "EUR" # But the shop form ignored the change . . .
def test_default_language_finnish(): activate("en") test_name_en = "Test shop" test_name_fi = "Testi kauppa" shop = get_default_shop() shop.name = test_name_en shop.public_name = test_name_en shop.save() shop_form = ShopBaseForm(instance=shop, languages=settings.LANGUAGES) data = get_form_data(shop_form, prepared=True) assert data.get("name__en") == test_name_en assert not data.get("name__fi") shop_form = ShopBaseForm(data=data, instance=shop, languages=settings.LANGUAGES) shop_form.full_clean() assert not shop_form.is_valid() and shop_form.errors data["name__fi"] = test_name_fi data["public_name__fi"] = test_name_fi shop_form = ShopBaseForm(data=data, instance=shop, languages=settings.LANGUAGES) shop_form.full_clean() assert shop_form.is_valid() and not shop_form.errors shop_form.save() shop.set_current_language("en") assert shop.name == test_name_en, "English activated" shop.set_current_language("fi") assert shop.name == test_name_fi, "Finnish activated"