def test_session_service_select(service, es_object):
    session_obj = SessionFactory.create()
    session_obj.save(using=es_object.connection)

    prod_list = ProductFactory.create_batch(2, sessionid=session_obj.meta["id"])
    [prod_obj.save(using=es_object.connection) for prod_obj in prod_list]
    Index("store", using=es_object.connection).refresh()

    results = service.select()
    assert len(results) > 0

    session_gender = "I_test_session_service_select"
    session_name = str(uuid4())
    session_obj = SessionFactory.create(gender=session_gender, name=session_name)
    session_obj.save(using=es_object.connection)

    prod_list = ProductFactory.create_batch(2, sessionid=session_obj.meta["id"])
    [prod_obj.save(using=es_object.connection) for prod_obj in prod_list]
    Index("store", using=es_object.connection).refresh()

    results = service.select(gender=session_gender)
    assert len(results) == 1
    assert results[0]["total"] == 2

    results = service.select(name=session_name)
    assert len(results) == 1
    assert results[0]["total"] == 2

    with pytest.raises(NoContentError):
        service.select(gender=str(uuid4()))

    with pytest.raises(NoContentError):
        service.select(name=str(uuid4()))
Exemple #2
0
def test_gender_controller(domain_url, es_object, token_session):
    session_obj = SessionFactory.create(gender="Women")
    session_obj.save(using=es_object.connection)
    prod_list = ProductFactory.create_batch(2,
                                            gender="Women",
                                            sessionid=session_obj.meta["id"])
    [prod_obj.save(using=es_object.connection) for prod_obj in prod_list]
    Index("store", using=es_object.connection).refresh()

    response = token_session.post(domain_url + "/api/gender/women")

    data = response.json()
    GenderResultsSchema().load(data)
    assert response.status_code == 200
    assert len(data["discounts"]) >= 2

    response = token_session.post(domain_url + "/api/gender/women",
                                  json={"amount": 1})

    data = response.json()
    GenderResultsSchema().load(data)
    assert response.status_code == 200
    assert len(data["discounts"]) == 1

    response = token_session.post(domain_url + "/api/gender/%s" % str(uuid4()))

    with pytest.raises(JSONDecodeError):
        response.json()

    assert response.status_code == 204
def test_session_products(domain_url, es_object, token_session):
    session_obj = SessionFactory.create(gender="Women")
    session_obj.save(using=es_object.connection)
    session_id = session_obj.meta["id"]
    prod_list = ProductFactory.create_batch(2, gender="Women", sessionid=session_id)
    [prod_obj.save(using=es_object.connection) for prod_obj in prod_list]
    Index("store", using=es_object.connection).refresh()

    response = token_session.post(
        domain_url + "/api/session/%s/1" % session_id
    )

    data = response.json()
    SearchProductsResultsSchema().load(data)
    assert response.status_code == 200
    assert len(data["products"]) == 2

    response = token_session.post(
        domain_url + "/api/session/%s/1" % session_id,
        json={
            "pricerange": {
                "min": 1,
                "max": 500
            },
            "pagesize": 1
        }
    )

    data = response.json()
    SearchProductsResultsSchema().load(data)
    assert response.status_code == 200
    assert len(data["products"]) == 1

    response = token_session.post(
        domain_url + "/api/session/%s/1" % session_id,
        json={
            "pricerange": {
                "min": 10000,
                "max": 20000
            }
        }
    )

    with pytest.raises(JSONDecodeError):
        response.json()

    assert response.status_code == 204

    response = token_session.post(
        domain_url + "/api/session/%s/1" % str(uuid4())
    )

    with pytest.raises(JSONDecodeError):
        response.json()

    assert response.status_code == 204
def test_session_service_select_by_id(service, es_object):
    session_obj = SessionFactory.create()
    session_obj.save(using=es_object.connection)
    Index("store", using=es_object.connection).refresh()

    results = service.select_by_id(session_obj.meta["id"])
    assert results is not None
    assert type(results) is Session

    with pytest.raises(NotFoundError):
        service.select_by_id(str(uuid4()))
Exemple #5
0
def test_session_get(es_object):
    obj = SessionFactory.create()
    obj.save(using=es_object.connection)

    res = Session.get(using=es_object.connection, id=obj.meta["id"])

    assert res is not None
    assert type(res) is Session
    assert res.meta["id"] == obj.meta["id"]
    assert res.meta["index"] == "store"
    assert res.meta["doc_type"] == "sessions"
Exemple #6
0
def test_session_dict(es_object):
    obj = SessionFactory.create()
    obj.save(using=es_object.connection)

    res = Session.get(using=es_object.connection, id=obj.meta["id"])
    obj_dict = res.get_dict()

    for key in ["id", "name", "gender", "image"]:
        assert key in obj_dict

    assert len(obj_dict.keys()) == 4
def test_session_products_controller(token_app, es_object):
    session_obj = SessionFactory.create(gender="Women")
    session_obj.save(using=es_object.connection)
    session_id = session_obj.meta["id"]
    prod_list = ProductFactory.create_batch(2,
                                            gender="Women",
                                            sessionid=session_id)
    [prod_obj.save(using=es_object.connection) for prod_obj in prod_list]
    Index("store", using=es_object.connection).refresh()

    with token_app.test_client() as client:
        response = client.post("api/session/%s/1" % session_id)

    data = json.loads(response.data)
    SearchProductsResultsSchema().load(data)
    assert response.status_code == 200
    assert len(data["products"]) == 2

    with token_app.test_client() as client:
        response = client.post("api/session/%s/1" % session_id,
                               json={
                                   "pricerange": {
                                       "min": 1,
                                       "max": 500
                                   },
                                   "pagesize": 1
                               })

    data = json.loads(response.data)
    SearchProductsResultsSchema().load(data)
    assert response.status_code == 200
    assert len(data["products"]) == 1

    with token_app.test_client() as client:
        response = client.post(
            "api/session/%s/1" % session_id,
            json={"pricerange": {
                "min": 10000,
                "max": 20000
            }})

    with pytest.raises(JSONDecodeError):
        json.loads(response.data)

    assert response.status_code == 204

    with token_app.test_client() as client:
        response = client.post("api/session/%s/1" % str(uuid4()))

    with pytest.raises(JSONDecodeError):
        json.loads(response.data)

    assert response.status_code == 204
Exemple #8
0
def test_gender_controller(token_app, es_object):
    session_obj = SessionFactory.create(gender="Women")
    session_obj.save(using=es_object.connection)
    prod_list = ProductFactory.create_batch(2, gender="Women", sessionid=session_obj.meta["id"])
    [prod_obj.save(using=es_object.connection) for prod_obj in prod_list]
    Index("store", using=es_object.connection).refresh()

    with token_app.test_client() as client:
        response = client.post(
            "api/gender/women"
        )

    data = json.loads(response.data)
    GenderResultsSchema().load(data)
    assert response.status_code == 200
    assert len(data["discounts"]) >= 2

    with token_app.test_client() as client:
        response = client.post(
            "api/gender/women",
            json={
                "amount": 1
            }
        )

    data = json.loads(response.data)
    GenderResultsSchema().load(data)
    assert response.status_code == 200
    assert len(data["discounts"]) == 1

    with token_app.test_client() as client:
        response = client.post(
            "api/gender/%s" % str(uuid4())
        )

    with pytest.raises(JSONDecodeError):
        json.loads(response.data)

    assert response.status_code == 204