Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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"
Ejemplo n.º 3
0
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
Ejemplo n.º 4
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 == {}
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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."]
    }
Ejemplo n.º 7
0
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"
Ejemplo n.º 8
0
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 == {}
Ejemplo n.º 9
0
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"
Ejemplo n.º 10
0
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
Ejemplo n.º 11
0
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
Ejemplo n.º 12
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)