396 lines
13 KiB
Python
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))
|