示例#1
0
def test_person_contact_edit_form_2(rf, admin_user):
    shop = get_default_shop()
    person = create_random_person(shop=shop)
    assert person.in_shop(shop)
    assert person.registered_in(shop)
    assert person.in_shop(shop, True)
    new_first_name = "test first name"
    new_name = "%s %s" % (new_first_name, person.last_name)
    request = apply_request_middleware(rf.post("/"),
                                       user=admin_user,
                                       shop=shop)
    contact_base_form = PersonContactBaseForm(request=request,
                                              instance=person,
                                              data={
                                                  "first_name":
                                                  "test first name",
                                                  "last_name":
                                                  person.last_name,
                                                  "gender": person.gender.value
                                              })
    assert contact_base_form.is_valid(), contact_base_form.errors
    contact = contact_base_form.save()
    assert isinstance(contact, PersonContact)
    assert contact.first_name == new_first_name
    assert contact.name == new_name
    assert person.in_shop(shop)
    assert person.registered_in(shop)
    assert person.in_shop(shop, True)
示例#2
0
def test_person_contact_create_form(rf, admin_user):
    shop = get_default_shop()
    user = get_user_model().objects.create_user(
        username=printable_gibberish(),
        first_name=printable_gibberish(),
        last_name=printable_gibberish(),
    )
    test_first_name = printable_gibberish()
    test_last_name = printable_gibberish()

    request = apply_request_middleware(rf.post("/"),
                                       user=admin_user,
                                       shop=shop)
    contact_base_form = PersonContactBaseForm(request=request,
                                              data={
                                                  "first_name":
                                                  test_first_name,
                                                  "last_name":
                                                  test_last_name,
                                                  "gender":
                                                  Gender.UNDISCLOSED.value
                                              },
                                              user=user)

    assert contact_base_form.is_valid(), contact_base_form.errors
    contact = contact_base_form.save()
    assert isinstance(contact, PersonContact)
    assert contact.user == user
    assert get_person_contact(user) == contact
    assert contact.name == "%s %s" % (test_first_name, test_last_name)

    assert contact.in_shop(shop)
    assert contact.registered_in(shop)
    assert contact.in_shop(shop, True)
示例#3
0
def test_person_contact_edit_form():
    person = create_random_person()
    new_first_name = "test first name"
    new_name = "%s %s" % (new_first_name, person.last_name)
    contact_base_form = PersonContactBaseForm(instance=person, data={
        "first_name": "test first name",
        "last_name": person.last_name,
        "gender": person.gender.value
    })
    assert contact_base_form.is_valid(), contact_base_form.errors
    contact = contact_base_form.save()
    assert isinstance(contact, PersonContact)
    assert contact.first_name == new_first_name
    assert contact.name == new_name
示例#4
0
def test_person_contact_edit_form():
    person = create_random_person()
    new_first_name = "test first name"
    new_name = "%s %s" % (new_first_name, person.last_name)
    contact_base_form = PersonContactBaseForm(instance=person,
                                              data={
                                                  "first_name":
                                                  "test first name",
                                                  "last_name":
                                                  person.last_name,
                                                  "gender": person.gender.value
                                              })
    assert contact_base_form.is_valid(), contact_base_form.errors
    contact = contact_base_form.save()
    assert isinstance(contact, PersonContact)
    assert contact.first_name == new_first_name
    assert contact.name == new_name
示例#5
0
def test_person_contact_create_form():
    user = get_user_model().objects.create_user(
        username=printable_gibberish(),
        first_name=printable_gibberish(),
        last_name=printable_gibberish(),
    )
    test_first_name = printable_gibberish()
    test_last_name = printable_gibberish()
    contact_base_form = PersonContactBaseForm(data={
        "first_name": test_first_name,
        "last_name": test_last_name,
        "gender": Gender.UNDISCLOSED.value
    }, user=user)
    assert contact_base_form.is_valid(), contact_base_form.errors
    contact = contact_base_form.save()
    assert isinstance(contact, PersonContact)
    assert contact.user == user
    assert get_person_contact(user) == contact
    assert contact.name == "%s %s" % (test_first_name, test_last_name)
示例#6
0
def test_person_contact_create_form():
    user = get_user_model().objects.create_user(
        username=printable_gibberish(),
        first_name=printable_gibberish(),
        last_name=printable_gibberish(),
    )
    test_first_name = printable_gibberish()
    test_last_name = printable_gibberish()
    contact_base_form = PersonContactBaseForm(data={
        "first_name":
        test_first_name,
        "last_name":
        test_last_name,
        "gender":
        Gender.UNDISCLOSED.value
    },
                                              user=user)
    assert contact_base_form.is_valid(), contact_base_form.errors
    contact = contact_base_form.save()
    assert isinstance(contact, PersonContact)
    assert contact.user == user
    assert get_person_contact(user) == contact
    assert contact.name == "%s %s" % (test_first_name, test_last_name)
示例#7
0
def test_contact_company_edit_multishop(rf):
    with override_settings(SHUUP_MANAGE_CONTACTS_PER_SHOP=True,
                           SHUUP_ENABLE_MULTIPLE_SHOPS=True):
        staff_user = create_random_user(is_staff=True)

        shop1 = get_shop(identifier="shop-1", enabled=True)
        shop2 = get_shop(identifier="shop-2", enabled=True)

        shop1.staff_members.add(staff_user)
        shop2.staff_members.add(staff_user)

        # only available in shop2
        contact = create_random_person(locale="en_US",
                                       minimum_name_comp_len=5,
                                       shop=shop2)

        # only available in shop1
        company = create_random_company(shop1)

        view = ContactEditView.as_view()

        # permission denied for contact and shop1
        request = apply_request_middleware(rf.get("/"),
                                           user=staff_user,
                                           shop=shop1)
        with pytest.raises(Http404):
            response = view(request, pk=contact.id)
        # permission granted for contact and shop2
        request = apply_request_middleware(rf.get("/"),
                                           user=staff_user,
                                           shop=shop2)
        response = view(request, pk=contact.id)
        assert response.status_code == 200

        # permission denied for company and shop2
        request = apply_request_middleware(rf.get("/"),
                                           user=staff_user,
                                           shop=shop2)
        with pytest.raises(Http404):
            response = view(request, pk=company.id)
        # permission granted for company and shop1
        request = apply_request_middleware(rf.get("/"),
                                           user=staff_user,
                                           shop=shop1)
        response = view(request, pk=company.id)
        assert response.status_code == 200

        # contact belongs to shop 1
        assert not contact.registered_in(shop1)
        assert not contact.in_shop(shop1)
        assert contact.registered_in(shop2)
        assert contact.in_shop(shop2)

        # company belongs to shop 2
        assert not company.registered_in(shop2)
        assert not company.in_shop(shop2)
        assert company.registered_in(shop1)
        assert company.in_shop(shop1)

        # save contact under shop 1
        request = apply_request_middleware(rf.post("/"),
                                           user=staff_user,
                                           shop=shop1)
        contact_base_form = PersonContactBaseForm(request=request,
                                                  instance=contact,
                                                  data={
                                                      "first_name":
                                                      "test first name",
                                                      "last_name":
                                                      contact.last_name,
                                                      "gender":
                                                      contact.gender.value
                                                  })
        assert contact_base_form.is_valid(), contact_base_form.errors
        contact_base_form.save()
        contact.refresh_from_db()

        assert contact.registered_in(shop2)
        assert not contact.registered_in(shop1)
        assert contact.in_shop(shop1)
        assert contact.in_shop(shop2)

        # save company under shop 2
        request = apply_request_middleware(rf.post("/"),
                                           user=staff_user,
                                           shop=shop2)
        form = CompanyContactBaseForm(request=request,
                                      instance=company,
                                      data={
                                          "name": "eww",
                                      })
        assert form.is_valid(), form.errors
        form.save()
        company.refresh_from_db()

        assert company.registered_in(shop1)
        assert not company.registered_in(shop2)
        assert company.in_shop(shop1)
        assert company.in_shop(shop2)