wag-managment-api-service-v.../service_app_test/test_application/evyos/address_building.py

396 lines
13 KiB
Python

from random import randint
from faker import Faker
from service_app_test.test_application.evyos.datas.company_employee_data import (
list_options,
)
from service_app_test.test_application.evyos.datas.get_building_types import (
list_building_types,
)
from service_app_test.test_application.evyos.datas.get_occupants_codes import (
get_occupants_types,
)
from service_app_test.test_application.evyos.datas.get_type_codes import (
get_type_codes_key_and_class,
)
from service_app_test.bases import active_and_confirmed
fake = Faker()
post_code_dict = lambda uu_id_street: {
"post_code": "06690",
"street_uu_id": uu_id_street,
**active_and_confirmed,
}
address_dict = lambda post_code_uu_id: {
"post_code_uu_id": post_code_uu_id,
"comment_address": "Reşat Nuri Cad No 11",
"letter_address": "Reşat Nuri Cad No 11 ÇANKAYA ANKARA TÜRKİYE",
"short_letter_address": "Reşat Nuri Cad No 11 ÇANKAYA ANKARA TÜRKİYE",
"build_number": "11",
**active_and_confirmed,
}
build_dict = lambda address_uu_id, build_type_uu_id: {
"gov_address_code": f"1231231231{randint(0,99)}",
"build_name": fake.street_name(),
"build_types_uu_id": build_type_uu_id,
"max_floor": randint(0, 99),
"underground_floor": "0",
"address_uu_id": address_uu_id,
"build_date": "1970-02-01",
"decision_period_date": "1970-07-01",
**active_and_confirmed,
}
build_part_dict = lambda build_uu_id, count, flat_type_uu_id, directions_uu_id: {
"build_uu_id": build_uu_id,
"address_gov_code": f"1231231231{randint(0,99)}",
"part_no": count + 1,
"part_level": count + 1,
"build_part_type_uu_id": flat_type_uu_id,
"part_gross_size": randint(141, 180),
"part_net_size": randint(80, 140),
"default_accessory": "Klima",
"human_livable": True,
"part_direction_uu_id": directions_uu_id,
**active_and_confirmed,
}
build_living_space = lambda build_part_uu_id, life_person_uu_id, occupant_type_uu_id: {
"build_parts_uu_id": build_part_uu_id,
"person_uu_id": life_person_uu_id,
"occupant_type_uu_id": occupant_type_uu_id,
**active_and_confirmed,
}
def create_build_parts(requester, build_uu_id, count: int = 1):
flat_type = list_building_types(type_code="DAIRE")
flat_type_uu_id = flat_type["data"][0]["uu_id"]
directions = get_type_codes_key_and_class(class_name="Directions", key_name="NN")
directions_uu_id = directions["data"]["uu_id"]
for count_ in range(count):
response = requester.post(
endpoint="/building/parts/create",
data=build_part_dict(
build_uu_id=build_uu_id,
count=count_,
flat_type_uu_id=flat_type_uu_id,
directions_uu_id=directions_uu_id,
),
)
# print("text", response.text)
# print("json", response.json())
# return response.json()
def create_post_code(post_code, requester):
print("post_code", post_code)
post_code_response = requester.post(
endpoint="/postcode/create",
data=post_code,
)
print("text", post_code_response.text)
print("json", post_code_response.json())
return
def create_addresses(address, requester):
address_response = requester.post(
endpoint="/address/create",
data=address,
)
print("text", address_response.text)
print("json", address_response.json())
return
def create_build_with_address_uu_id(address_dict_with_uu_id, requester):
response = requester.post(
endpoint="/building/build/create",
data={**address_dict_with_uu_id, "build_number": "11"},
)
print("text", response.text)
print("json", response.json())
return response.json()
def create_build_living_space(living_space_dict, requester):
response = requester.post(
endpoint="/building/living_space/create",
data=living_space_dict,
)
# print("text", response.text)
# print("json", response.json())
return response.json()
def search_street(search_text, requester):
response = requester.post(
endpoint="/address/search",
data={
"search": search_text,
"list_options": {
"page": 1,
"size": 30,
},
},
)
print("text", response.text)
print("json", response.json())
for street_data in response.json().get("data"):
condition_of_street = (
street_data["AddressCity.city_name"] == "ANKARA"
and street_data["AddressDistrict.district_name"] == "ÇANKAYA"
)
if condition_of_street:
print("street_uu_id", street_data["AddressStreet.uu_id"])
return street_data["AddressStreet.uu_id"]
def list_post_codes(requester):
post_code_response = requester.post(
endpoint="/postcode/list",
data=list_options,
)
print("text", post_code_response.text)
print("json", post_code_response.json())
return post_code_response.json()
def list_addresses(requester):
address_response = requester.post(
endpoint="/address/list",
data=list_options,
)
print("text", address_response.text)
print("json", address_response.json())
return address_response.json()
def list_building(requester, query=None):
query_options = list_options
if query:
query_options["query"] = query
response = requester.post(endpoint="/building/build/list", data=query_options)
print("text", response.text)
print("json", response.json())
return response.json()
def list_build_living_space(requester):
response = requester.post(
endpoint="/building/living_space/list",
data=list_options,
)
print("text", response.text)
print("json", response.json())
return response.json()
def list_building_parts(requester, query: dict = None):
query_dict = query
if not query:
query_dict = {"part_code__contains": ":"}
response = requester.post(
endpoint="/building/parts/list",
data={**list_options, "query": query_dict},
)
print("text", response.text)
print("json", response.json())
return response.json()
def create_property_owner(
build_part_uu_id, person_uu_id, occupant_type_flat_owner_uu_id, requester
):
return create_build_living_space(
living_space_dict=build_living_space(
build_part_uu_id=build_part_uu_id,
life_person_uu_id=person_uu_id,
occupant_type_uu_id=occupant_type_flat_owner_uu_id,
),
requester=requester,
)
def create_property_tenant(
build_part_uu_id, person_uu_id, occupant_type_flat_tenant_uu_id, requester
):
return create_build_living_space(
living_space_dict=build_living_space(
build_part_uu_id=build_part_uu_id,
life_person_uu_id=person_uu_id,
occupant_type_uu_id=occupant_type_flat_tenant_uu_id,
),
requester=requester,
)
def create_property_resident(
build_part_uu_id, person_uu_id, occupant_type_flat_resident_uu_id, requester
):
return create_build_living_space(
living_space_dict=build_living_space(
build_part_uu_id=build_part_uu_id,
life_person_uu_id=person_uu_id,
occupant_type_uu_id=occupant_type_flat_resident_uu_id,
),
requester=requester,
)
def create_property_observer(build_part_uu_id, person_uu_id, requester):
return create_build_living_space(
living_space_dict=build_living_space(
build_part_uu_id=build_part_uu_id,
life_person_uu_id=person_uu_id,
occupant_type_uu_id=None,
),
requester=requester,
)
def create_occupant_build_manager(
build_part_uu_id, person_uu_id, occupant_type_flat_manager_uu_id, requester
):
return create_build_living_space(
living_space_dict=build_living_space(
build_part_uu_id=build_part_uu_id,
life_person_uu_id=person_uu_id,
occupant_type_uu_id=occupant_type_flat_manager_uu_id,
),
requester=requester,
)
def get_random_people_list(requester):
# person_uu_id : 2d5dac99-c445-44fc-a0a5-de97ec65781a is a tenant and lives in the build part as PL and PT
random_user_list_response = requester.post(
data={
"page": 1,
"size": 70,
"query": {"created_by": None, "email__contains": "@example."},
},
endpoint="/user/list",
).json()
random_user_list = [
str(user["uu_id"]) for user in random_user_list_response["data"]
]
print("random_user_list", random_user_list)
random_people_list_response = requester.post(
data={"page": 1, "size": 70, "query": {"user_uu_id_list": random_user_list}},
endpoint="/user/list",
).json()
return random_people_list_response["data"]
def assign_random_people_to_build_parts(
list_of_building_parts, list_of_random_people, occupant_dict, build_uu_id, requester
):
part_counter = 0
uu_id_occupant_type_flat_owner = occupant_dict["occupant_type_flat_owner"]
uu_id_occupant_type_flat_tenant = occupant_dict["occupant_type_flat_tenant"]
uu_id_occupant_type_flat_manager = occupant_dict["occupant_type_flat_manager"]
uu_id_occupant_type_flat_resident = occupant_dict["occupant_type_flat_resident"]
man_room = list_building_parts(
query={"part_no": "0", "build_uu_id": build_uu_id}, requester=requester
)
man_room_uu_id = man_room["data"][0]["uu_id"]
for i in range(len(list_of_random_people)):
if i % 2 == 1 and not i == 0:
if part_counter == len(list_of_building_parts):
break
selected_build_part_uu_id = list_of_building_parts[part_counter]["uu_id"]
part_counter += 1
# Property Owner
create_property_owner(
build_part_uu_id=selected_build_part_uu_id,
person_uu_id=list_of_random_people[i - 1]["uu_id"],
occupant_type_flat_owner_uu_id=uu_id_occupant_type_flat_owner,
requester=requester,
)
# Property Tenant
create_property_tenant(
build_part_uu_id=selected_build_part_uu_id,
person_uu_id=list_of_random_people[i]["uu_id"],
occupant_type_flat_tenant_uu_id=uu_id_occupant_type_flat_tenant,
requester=requester,
)
# Property Tenant Living Space Occupant
create_property_resident(
build_part_uu_id=selected_build_part_uu_id,
person_uu_id=list_of_random_people[i]["uu_id"],
occupant_type_flat_resident_uu_id=uu_id_occupant_type_flat_resident,
requester=requester,
)
if i == 1:
create_occupant_build_manager(
build_part_uu_id=man_room_uu_id,
person_uu_id=list_of_random_people[i]["uu_id"],
occupant_type_flat_manager_uu_id=uu_id_occupant_type_flat_manager,
requester=requester,
)
def run_address_to_building(requester):
street_uu_id = search_street("Reşat Nuri", requester=requester)
occupant_type_flat_owner = get_occupants_types(occupant_code="FL-OWN")
occupant_type_flat_tenant = get_occupants_types(occupant_code="FL-TEN")
occupant_type_flat_manager = get_occupants_types(occupant_code="BU-MNG")
occupant_type_flat_resident = get_occupants_types(occupant_code="FL-RES")
occupant_type_dict = dict(
occupant_type_flat_owner=occupant_type_flat_owner["data"]["uu_id"],
occupant_type_flat_tenant=occupant_type_flat_tenant["data"]["uu_id"],
occupant_type_flat_manager=occupant_type_flat_manager["data"]["uu_id"],
occupant_type_flat_resident=occupant_type_flat_resident["data"]["uu_id"],
)
create_post_code(post_code=post_code_dict(street_uu_id), requester=requester)
selected_post_code_uu_id = list_post_codes(requester=requester)["data"][0]["uu_id"]
create_addresses(
address=address_dict(selected_post_code_uu_id), requester=requester
)
selected_address_uu_id = list_addresses(requester=requester)["data"][0]["uu_id"]
build_type_response = list_building_types(type_code="apt")
build_type_uu_id_ = build_type_response["data"][0]["uu_id"]
create_build_with_address_uu_id(
build_dict(
address_uu_id=selected_address_uu_id,
build_type_uu_id=build_type_uu_id_,
),
requester=requester,
)
selected_build_uu_id = list_building(requester=requester)["data"][0]["uu_id"]
create_build_parts(build_uu_id=selected_build_uu_id, count=21, requester=requester)
random_people_list = get_random_people_list(requester=requester)
building_parts_list = list_building_parts(requester=requester)["data"]
print("building_parts_list", len(building_parts_list))
assign_random_people_to_build_parts(
list_of_random_people=random_people_list,
list_of_building_parts=building_parts_list,
occupant_dict=occupant_type_dict,
build_uu_id=selected_build_uu_id,
requester=requester,
)
print("list_build_living_space", list_build_living_space(requester=requester))