def test_origin_model_validators(): user = CustomUser(email="*****@*****.**") user.save() origin1 = Origin(country="Germany", region="Yunnan", locality="Paris", user=user) origin1.save() origins = Origin.objects.all() assert len(origins) == 1 origin2 = Origin(country="Germany", locality="Paris", user=user) origin2.save() origins = Origin.objects.all() assert len(origins) == 2 origin3 = Origin(country="Germany", locality="Paris", user=user) with pytest.raises(IntegrityError): origin3.save() with pytest.raises(transaction.TransactionManagementError): origins = Origin.objects.all() assert len(origins) == 2
def test_vendor_vendortrademark_model(): user = CustomUser(email="*****@*****.**") user.save() origin = Origin(country="Germany", region="Yunnan", locality="Paris", user=user) origin.save() vendor = Vendor( name="vendor name", website="www.vendor.com", origin=origin, user=user, popularity=7, ) vendor.save() assert not vendor.is_public assert str(vendor) == "vendor name" assert vendor.website == "www.vendor.com" assert vendor.origin.country == "Germany" assert vendor.user.email == "*****@*****.**" assert vendor.popularity == 7 vendor_tm = VendorTrademark(vendor=vendor, name="vn") vendor_tm.save() assert vendor_tm.vendor.name == "vendor name" assert str(vendor_tm) == "vn"
def test_brewing_session_model_validators(): user = CustomUser(email="*****@*****.**") user.save() session = BrewingSession(user=user, current_infusion=0) with pytest.raises(ValidationError): session.full_clean() session.save() assert len(BrewingSession.objects.all()) == 0
def test_valid_vendor_serializer(client): user = CustomUser(email="*****@*****.**") user.save() valid_serializer_data = {"user": user, "name": "test"} serializer = VendorSerializer(data=valid_serializer_data) assert serializer.is_valid() assert serializer.validated_data["name"] == "test" assert serializer.errors == {}
def test_custom_user_model(): user = CustomUser(email="*****@*****.**") user.save() assert user.email == "*****@*****.**" assert user.joined_at assert user.is_active assert not user.is_staff assert not user.is_superuser assert str(user) == user.email
def test_invalid_vendor_serializer(client): user = CustomUser(email="*****@*****.**") user.save() invalid_serializer_data = {"name": "test", "popularity": 20} serializer = VendorSerializer(data=invalid_serializer_data) assert not serializer.is_valid() assert serializer.data == invalid_serializer_data assert serializer.errors == { "popularity": ["Ensure this value is less than or equal to 10."] }
def test_origin_model(): user = CustomUser(email="*****@*****.**") user.save() origin = Origin(country="Germany", region="Yunnan", locality="Paris", user=user) origin.save() assert not origin.is_public assert origin.country == "Germany" assert origin.region == "Yunnan" assert origin.locality == "Paris" assert str(origin) == "Paris, Yunnan, Germany"
def test_valid_subcategory_serializer(client): user = CustomUser(email="*****@*****.**") user.save() category = Category(name="OOLONG") category.save() valid_serializer_data = { "user": user, "name": "test", "category": category.id } serializer = SubcategorySerializer(data=valid_serializer_data) assert serializer.is_valid() assert type(serializer.validated_data["category"]) == Category assert serializer.errors == {}
def test_subcategory_subcategoryname_model(): user = CustomUser(email="*****@*****.**") user.save() category = Category(name="OOLONG") category.save() origin = Origin(country="Germany", region="Yunnan", locality="Paris", user=user) origin.save() gongfu = Brewing( temperature=99, weight=5, initial=timedelta(seconds=10), increments=timedelta(seconds=3), ) gongfu.save() western = Brewing( temperature=85, weight=0.8, initial=timedelta(seconds=180), increments=timedelta(seconds=30), ) western.save() subcategory = Subcategory( category=category, name="Da Hong Pao", translated_name="Big Red Robe", origin=origin, user=user, gongfu_brewing=gongfu, western_brewing=western, ) subcategory.save() assert not subcategory.is_public assert subcategory.name == "Da Hong Pao" assert subcategory.category.name == "OOLONG" assert subcategory.translated_name == "Big Red Robe" assert subcategory.origin.locality == "Paris" assert subcategory.gongfu_brewing.temperature == 99 assert subcategory.western_brewing.weight == 0.8 assert str(subcategory) == "Da Hong Pao (Big Red Robe)" subcategoryname = SubcategoryName(subcategory=subcategory, name="dhp") subcategoryname.save() assert subcategoryname.name == "dhp"
def test_brewing_session_model(): user = CustomUser(email="*****@*****.**") user.save() category = Category(name="OOLONG") category.save() tea = Tea(user=user, name="Da Hong Pao") tea.save() brewing = Brewing( temperature=99, weight=5, initial=timedelta(seconds=10), increments=timedelta(seconds=3), ) brewing.save() session = BrewingSession(user=user, tea=tea, brewing=brewing) session.save() assert session.user.email == "*****@*****.**" assert session.tea.name == "Da Hong Pao" assert session.brewing.temperature == 99 assert session.current_infusion == 1 assert not session.is_completed assert session.created_on
def test_tea_model_validators(): user = CustomUser(email="*****@*****.**") user.save() tea = Tea(user=user, name="test", year=1800) with pytest.raises(ValidationError): tea.full_clean() tea.save() assert len(Tea.objects.all()) == 0 tea = Tea(user=user, name="test", year=2200) with pytest.raises(ValidationError): tea.full_clean() tea.save() assert len(Tea.objects.all()) == 0 tea = Tea(user=user, name="test", price=-1) with pytest.raises(ValidationError): tea.full_clean() tea.save() assert len(Tea.objects.all()) == 0 tea = Tea(user=user, name="test", weight_left=-1) with pytest.raises(ValidationError): tea.full_clean() tea.save() assert len(Tea.objects.all()) == 0 tea = Tea(user=user, name="test", weight_consumed=-1) with pytest.raises(ValidationError): tea.full_clean() tea.save() assert len(Tea.objects.all()) == 0 tea = Tea(user=user, name="test", rating=-1) with pytest.raises(ValidationError): tea.full_clean() tea.save() assert len(Tea.objects.all()) == 0
def test_tea_model(): user = CustomUser(email="*****@*****.**") user.save() category = Category(name="OOLONG") category.save() origin = Origin(country="Germany", region="Yunnan", locality="Paris", user=user) origin.save() gongfu = Brewing( temperature=99, weight=5, initial=timedelta(seconds=10), increments=timedelta(seconds=3), ) gongfu.save() western = Brewing( temperature=85, weight=0.8, initial=timedelta(seconds=180), increments=timedelta(seconds=30), ) western.save() subcategory = Subcategory( category=category, name="Da Hong Pao", translated_name="Big Red Robe", origin=origin, user=user, gongfu_brewing=gongfu, western_brewing=western, ) subcategory.save() vendor = Vendor( name="vendor name", website="www.vendor.com", origin=origin, user=user, popularity=7, ) vendor.save() tea = Tea( user=user, is_archived=True, name="Da Hong Pao", year=1980, category=category, subcategory=subcategory, vendor=vendor, gongfu_brewing=gongfu, western_brewing=western, price=109.52, weight_left=80, rating=8, notes="many notes", ) tea.image = SimpleUploadedFile( name="image.jpg", content=open("tests/test_media/test_image.jpg", "rb").read(), ) tea.save() assert tea.name == "Da Hong Pao" assert tea.year == 1980 assert tea.user.email == "*****@*****.**" assert tea.is_archived assert tea.category.name == "OOLONG" assert tea.subcategory.translated_name == "Big Red Robe" assert tea.vendor.website == "www.vendor.com" assert tea.gongfu_preferred assert tea.gongfu_brewing.temperature == 99 assert tea.western_brewing.weight == 0.8 assert tea.price == 109.52 assert tea.weight_left == 80 assert tea.rating == 8 assert tea.notes == "many notes" assert tea.created_on assert tea.last_consumed_on path = tea.image.name assert os.path.isfile(os.path.join(settings.MEDIA_ROOT, path)) tea.image.delete() os.rmdir(os.path.join(settings.MEDIA_ROOT, os.path.dirname(path))) assert not os.path.isfile(path)