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()))
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()))
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"
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
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