def test_add_stay_period(self): from_month = datetime(2018, 6, 1) to_month = datetime(2018, 7, 1) stay_period_object = crud.add_stay_period(from_month, to_month, self.session) # check if the return object has correct information self.assertEqual(stay_period_object.from_month, from_month) self.assertEqual(stay_period_object.to_month, to_month) # check if the stay period is loaded into the database query_object = crud.get_row_if_exists( Stay_Period, self.session, **{ 'from_month': from_month, 'to_month': to_month }) self.assertEqual(query_object == stay_period_object, True) # one thing in the database number_of_rows = self.session.query(Stay_Period).count() self.assertEqual(number_of_rows == 1, True)
def test_write_attribute(self): # create an user user_name = "cris" user_email = "*****@*****.**" created_time = datetime.now() user_phone = "858-2867-3567" user_description = "cultured man" user_school_year = "Third" user_major = "Data Science" user_object = crud.add_user( user_name, user_email, created_time, user_phone, user_description, user_school_year, user_major, self.session) # create a move in early_date = datetime(2018, 6, 1) late_date = datetime(2018, 6, 12) move_in_object = crud.add_move_in( early_date, late_date, self.session) # create a stay period from_month = datetime(2018, 6, 1) to_month = datetime(2018, 7, 1) stay_period_object = crud.add_stay_period( from_month, to_month, self.session) # create an address address = "75 Big Rock Cove St.Middletown, NY 10940" distance = "20 mins" address_object = crud.add_address( distance, address, self.session) # create a room date_created = datetime.now() room_type = room_types[0] price = 500 negotiable = True description = "dream house in a life time" no_rooms = 2 no_bathrooms = 2 room_object = crud.add_room( date_created, room_type, price, negotiable, description, stay_period_object, address_object, user_object, move_in_object, no_rooms, no_bathrooms, self.session) room_object = crud.add_room( date_created, room_type, price, negotiable, description, stay_period_object, address_object, user_object, move_in_object, no_rooms, no_bathrooms, self.session) crud.write_attribute( facilities[0:3], 'facilities', room_object, self.session) count = self.session.query(House_Attribute).count() self.assertEqual(count == 3, True) categories = self.session.query(Attribute.category).distinct().all() self.assertEqual(categories[0][0] == 'facilities', True) names = set([result[0] for result in self.session.query(Attribute.name).all()]) self.assertEqual(names == set(facilities[0:3]), True)
def test_room_json(self): # create an user user_name = "cris" user_email = "*****@*****.**" created_time = datetime.now() user_phone = "858-2867-3567" user_description = "cultured man" user_school_year = "Third" user_major = "Data Science" user_object = crud.add_user( user_name, user_email, created_time, user_phone, user_description, user_school_year, user_major, self.session) # create a move in early_date = datetime(2018, 6, 1) late_date = datetime(2018, 6, 12) move_in_object = crud.add_move_in( early_date, late_date, self.session) # create a stay period from_month = datetime(2018, 6, 1) to_month = datetime(2018, 7, 1) stay_period_object = crud.add_stay_period( from_month, to_month, self.session) # create an address address = "75 Big Rock Cove St.Middletown, NY 10940" distance = "20 mins" address_object = crud.add_address( distance, address, self.session) # create a room date_created = datetime.now() room_type = room_types[0] price = 500 negotiable = True description = "dream house in a life time" no_rooms = 2 no_bathrooms = 2 room_object = crud.add_room( date_created, room_type, price, negotiable, description, stay_period_object, address_object, user_object, move_in_object, no_rooms, no_bathrooms, self.session) result_json = crud.room_json( room_object, self.session, True) self.assertEqual(result_json["name"] == "75 Big Rock Cove St.Middletown", True) self.assertEqual(result_json["location"] == address, True) self.assertEqual(result_json["pricePerMonth"] == price, True) self.assertEqual(result_json["from_month"] == "June/18", True) self.assertEqual(result_json["to_month"] == "July/18", True) self.assertEqual(result_json["early"] == "06/01/18", True) self.assertEqual(result_json["late"] == "06/12/18", True) self.assertEqual(result_json["roomType"] == room_type, True) self.assertEqual(result_json["other"] == [], True) self.assertEqual(result_json["facilities"] == [], True) self.assertEqual(result_json["leaserName"] == user_name, True) self.assertEqual(result_json["leaserEmail"] == user_email, True) self.assertEqual(result_json["leaserPhone"] == user_phone, True) self.assertEqual( result_json["leaserSchoolYear"] == user_school_year, True) self.assertEqual(result_json["leaserMajor"] == user_major, True) self.assertEqual(result_json["photos"] == ["photo1", "photo2"], True) self.assertEqual(result_json["profilePhoto"] == "profile_photo", True) self.assertEqual(result_json["roomId"] == room_object.id, True) self.assertEqual(result_json["negotiable"] == negotiable, True) self.assertEqual(result_json["numBaths"] == no_rooms, True) self.assertEqual(result_json["numBeds"] == no_bathrooms, True) self.assertEqual(result_json["roomDescription"] == description, True) # add three attributes name, category = others[0], "other" # create an attribute attribute_object = crud.add_attribute( name, category, self.session) # connect room with the attribute house_attribute_object = crud.add_house_attribute( room_object, attribute_object, self.session) name, category = others[1], "other" # create an attribute attribute_object = crud.add_attribute( name, category, self.session) # connect room with the attribute house_attribute_object = crud.add_house_attribute( room_object, attribute_object, self.session) name, category = facilities[0], "facilities" # create an attribute attribute_object = crud.add_attribute( name, category, self.session) # connect room with the attribute house_attribute_object = crud.add_house_attribute( room_object, attribute_object, self.session) result_json = crud.room_json( room_object, self.session, True) self.assertEqual(result_json["other"] == [others[0], others[1]], True) self.assertEqual(result_json["facilities"] == [facilities[0]], True)
def test_read_rooms(self): # add room allows duplicates since one can have multiple rooms same time with same criteria # create an user user_name = "cris" user_email = "*****@*****.**" created_time = datetime.now() user_phone = "858-2867-3567" user_description = "cultured man" user_school_year = "Third" user_major = "Data Science" user_object = crud.add_user( user_name, user_email, created_time, user_phone, user_description, user_school_year, user_major, self.session) # create a move in early_date = datetime(2018, 6, 1) late_date = datetime(2018, 6, 12) move_in_object = crud.add_move_in( early_date, late_date, self.session) # create a stay period from_month = datetime(2018, 6, 1) to_month = datetime(2018, 7, 1) stay_period_object = crud.add_stay_period( from_month, to_month, self.session) # create an address address = "75 Big Rock Cove St.Middletown, NY 10940" distance = "20 mins" address_object = crud.add_address( distance, address, self.session) # create a room date_created = datetime.now() room_type = room_types[0] price = 500 negotiable = True description = "dream house in a life time" no_rooms = 2 no_bathrooms = 2 room_object = crud.add_room( date_created, room_type, price, negotiable, description, stay_period_object, address_object, user_object, move_in_object, no_rooms, no_bathrooms, self.session) room_object = crud.add_room( date_created, room_type, price, negotiable, description, stay_period_object, address_object, user_object, move_in_object, no_rooms, no_bathrooms, self.session) room_object = crud.add_room( date_created, room_type, price, negotiable, description, stay_period_object, address_object, user_object, move_in_object, no_rooms, no_bathrooms, self.session) number_of_rows = len(crud.read_rooms(self.session)) self.assertEqual(number_of_rows == 3, True) # create a different user user_name = "keenan" user_email = "*****@*****.**" created_time = datetime.now() user_phone = "858-2867-8888" user_description = "HK Dutch man" user_school_year = "Grad" user_major = "Computer Science" user_object = crud.add_user( user_name, user_email, created_time, user_phone, user_description, user_school_year, user_major, self.session) # create a move in early_date = datetime(2018, 8, 1) late_date = datetime(2018, 10, 12) move_in_object = crud.add_move_in( early_date, late_date, self.session) # create a stay period from_month = datetime(2018, 10, 1) to_month = datetime(2019, 10, 1) stay_period_object = crud.add_stay_period( from_month, to_month, self.session) # create an address address = "75 Big Rock Cove St.Middletown, NY 10940" distance = "20 mins" address_object = crud.add_address( distance, address, self.session) # create a room date_created = datetime.now() room_type = room_types[0] price = 500 negotiable = True description = "smoking is bad for your health" no_rooms = 4 no_bathrooms = 5 room_object = crud.add_room( date_created, room_type, price, negotiable, description, stay_period_object, address_object, user_object, move_in_object, no_rooms, no_bathrooms, self.session) number_of_rows = len(crud.read_rooms(self.session)) self.assertEqual(number_of_rows == 4, True)
def test_add_and_remove_bookmark(self): # create an user user_name = "cris" user_email = "*****@*****.**" created_time = datetime.now() user_phone = "858-2867-3567" user_description = "cultured man" user_school_year = "Third" user_major = "Data Science" user_object = crud.add_user( user_name, user_email, created_time, user_phone, user_description, user_school_year, user_major, self.session) # create a move in early_date = datetime(2018, 6, 1) late_date = datetime(2018, 6, 12) move_in_object = crud.add_move_in( early_date, late_date, self.session) # create a stay period from_month = datetime(2018, 6, 1) to_month = datetime(2018, 7, 1) stay_period_object = crud.add_stay_period( from_month, to_month, self.session) # create an address address = "75 Big Rock Cove St. Middletown, NY 10940" distance = "20 mins" address_object = crud.add_address( distance, address, self.session) # create a room date_created = datetime.now() room_type = room_types[0] price = 500 negotiable = True description = "dream house in a life time" no_rooms = 2 no_bathrooms = 2 room_object = crud.add_room( date_created, room_type, price, negotiable, description, stay_period_object, address_object, user_object, move_in_object, no_rooms, no_bathrooms, self.session) # connect bookmark with the room and user bookmark_object = crud.add_bookmark( room_object, user_object, self.session) # check if the return object has correct information self.assertEqual(bookmark_object.room_id, room_object.id) self.assertEqual(bookmark_object.user_id, user_object.id) # check duplicate handling bookmark_object = crud.add_bookmark( room_object, user_object, self.session) number_of_rows = self.session.query(Bookmark).count() self.assertEqual(number_of_rows == 1, True) # check delete crud.remove_bookmark( room_object, user_object, self.session) number_of_rows = self.session.query(Bookmark).count() self.assertEqual(number_of_rows == 0, True) crud.remove_bookmark( room_object, user_object, self.session) number_of_rows = self.session.query(Bookmark).count() self.assertEqual(number_of_rows == 0, True)
def test_add_house_attribute(self): name, category = others[0], "other" # create an attribute (Single Case) attribute_object = crud.add_attribute( name, category, self.session) # create a stay period from_month = datetime(2018, 6, 1) to_month = datetime(2018, 7, 1) stay_period_object = crud.add_stay_period( from_month, to_month, self.session) # create an address address = "75 Big Rock Cove St.Middletown, NY 10940" distance = "20 mins" address_object = crud.add_address( distance, address, self.session) # create an user user_name = "cris" user_email = "*****@*****.**" created_time = datetime.now() user_phone = "858-2867-3567" user_description = "cultured man" user_school_year = "Third" user_major = "Data Science" user_object = crud.add_user( user_name, user_email, created_time, user_phone, user_description, user_school_year, user_major, self.session) # create a move in early_date = datetime(2018, 6, 1) late_date = datetime(2018, 6, 12) move_in_object = crud.add_move_in( early_date, late_date, self.session) # create a room date_created = datetime.now() room_type = room_types[0] price = 500 negotiable = True description = "dream house in a life time" no_rooms = 2 no_bathrooms = 2 room_object = crud.add_room( date_created, room_type, price, negotiable, description, stay_period_object, address_object, user_object, move_in_object, no_rooms, no_bathrooms, self.session) # connect room with the attribute house_attribute_object = crud.add_house_attribute( room_object, attribute_object, self.session) # check if the return object has correct information self.assertEqual(house_attribute_object.room_id, room_object.id) self.assertEqual(house_attribute_object.attribute_name, attribute_object.name) # one thing in the database number_of_rows = self.session.query(House_Attribute).count() self.assertEqual(number_of_rows == 1, True) # create two attributes (multiple Case) name, category = others[1], "other" # create a second attribute attribute_object = crud.add_attribute( name, category, self.session) house_attribute_object = crud.add_house_attribute( room_object, attribute_object, self.session) # check if the return object has correct information self.assertEqual(house_attribute_object.room_id, room_object.id) self.assertEqual(house_attribute_object.attribute_name, attribute_object.name) # two things in the database number_of_rows = self.session.query(House_Attribute).count() self.assertEqual(number_of_rows == 2, True) # check duplicate handling house_attribute_object = crud.add_house_attribute( room_object, attribute_object, self.session) number_of_rows = self.session.query(House_Attribute).count() self.assertEqual(number_of_rows == 2, True)