Exemplo n.º 1
0
 def _make_apartment(user, addr, rent, roomates, rooms, s_date):
     apartmant = Apartment(owner=user,
                           city=city_model,
                           address=addr,
                           rent=rent,
                           num_of_roomates=roomates,
                           num_of_rooms=rooms,
                           start_date=s_date)
     apartmant.save()
     return apartmant
Exemplo n.º 2
0
 def test_get_all_relevant_apartments(self):
     apartments_qurey = Apartment.get_all_relevant_apartments()
     assert all(
         isinstance(current_apartment, Apartment)
         for current_apartment in apartments_qurey)
     assert all(current_apartment.is_relevant
                for current_apartment in apartments_qurey)
Exemplo n.º 3
0
def apartment_model(db, city_model):
    new_owner = get_user_model().objects.create_user(
        '*****@*****.**', 'owner', 'own', '1900-01-01', 'password')
    new_owner.save()
    new_apartment = Apartment(
        owner=new_owner,
        city=city_model,
        address='street',
        rent=4500,
        num_of_roomates=2,
        num_of_rooms=3,
        start_date='2021-1-1',
        about='Hey!',
        image_url='www.some-url.com',
    )
    new_apartment.save()
    return new_apartment
Exemplo n.º 4
0
def apart_success_search(db, city_model_Tel_Aviv):
    new_owner = get_user_model().objects.create_user(
        '*****@*****.**', 'owner', 'own',
        '1900-01-01', 'password')
    new_owner.save()
    new_apartment = Apartment(
        owner=new_owner,
        city=city_model_Tel_Aviv,
        address='street',
        rent=2500,
        num_of_roomates=2,
        num_of_rooms=3,
        start_date='2021-03-02',
        about='Hey!',
        image_url='www.some-url.com',
    )
    new_apartment.save()
    return new_apartment
Exemplo n.º 5
0
 def generate_apartment_data(apps, schema_editor):
     apt_test_data = [
         (User.objects.get(email='*****@*****.**'),
          City.objects.get(cityName='Tel Aviv'), 'Israelof 5', 2650, 2, 3,
          '2020-01-01', "Join our cool aprt!"),
         (User.objects.get(email='*****@*****.**'),
          City.objects.get(cityName='Jerusalem'), 'Yoseftal 6', 3200, 3, 4,
          '2020-02-02', "Good vibes only"),
     ]
     with transaction.atomic():
         for baseuser, city, address, rent, roomates, rooms, startdate, about in apt_test_data:
             Apartment(
                 owner=baseuser,
                 city=city,
                 address=address,
                 rent=rent,
                 num_of_roomates=roomates,
                 num_of_rooms=rooms,
                 start_date=startdate,
                 about=about,
                 image_url=random.choice(APARTMENT_IMAGE_URL_LIST)).save()
Exemplo n.º 6
0
    def generate_more_apartment_data(apps, schema_editor):
        users = User.objects.all()[100:]
        cities = City.objects.all()

        with transaction.atomic():
            for user in users:
                start_date = "2021-" + str(random.randint(1, 12)) + \
                    "-" + str(random.randint(1, 28))
                address = random.choice(STREETS_LIST) + ", " + \
                    str(random.randint(1, 150))
                num_of_roomates = random.randint(2, 4)
                num_of_rooms = num_of_roomates + random.randint(0, 3)
                Apartment(
                    owner=user,
                    city=cities[random.randint(0, 5)],
                    address=address,
                    rent=random.randint(1500, 5000),
                    num_of_roomates=num_of_roomates,
                    num_of_rooms=num_of_rooms,
                    start_date=start_date,
                    about=random.choice(APARTMENT_ABOUT),
                    image_url=random.choice(APARTMENT_IMAGE_URL_LIST)).save()
Exemplo n.º 7
0
 def test_get_apartment_by_id(self, apartment_model):
     check_apartment_success = Apartment.get_apartment_by_id(
         apartment_model.owner.id)
     check_apartment_fail = Apartment.get_apartment_by_id(-1)
     assert check_apartment_success == apartment_model
     assert check_apartment_fail is None
def parse_apt(url_str):
    f = urllib2.urlopen(url_str)
    post_title = ''
    while post_title == '':
        line = f.readline()
        if line == '':
            print 'title not found'
            return
        title_search = '<h2 class="postingtitle">';
        post_title_split = None
        if line.find(title_search) != -1:
            post_title_split = unicode(line[len(title_search):].split('(berkeley'))
        elif line.find('<h2>') != -1:
            post_title_split = unicode(line[4:].split('(berkeley'))
        if post_title_split != None:
            i = 0
            while i < len(post_title_split) - 1:
                post_title += unicode(post_title_split[i])
                i += 1
            break
    post_title = post_title.strip()
    if len(post_title) < 2:
        return
    f.readline()
    post_time = f.readline().split('<br>')[0]

    xstreet0 = ''
    xstreet1 = ''
    city = ''
    region = ''
    for line in f:
        if line.find('<!-- CLTAG') != -1:
            if line.find('xstreet0=') != -1:
                xstreet0 = line.split('xstreet0=')[1].split('-->')[0].strip()
            elif line.find('xstreet1=') != -1:
                xstreet1 = line.split('xstreet1=')[1].split('-->')[0].strip()
            elif line.find('city=') != -1:
                city = line.split('city=')[1].split('-->')[0].strip()
            elif line.find('region=') != -1:
                region = line.split('region=')[1].split('-->')[0].strip()
    print xstreet0, xstreet1, city, region
    post_id = url_str.split('/apa/')[1].replace('.html','').strip()
    print post_title, post_time, post_id
    try:
        price = int(post_title.split(" ")[0].split("$")[-1])
    except:
        price = -1
        print "price not found"
    try:
        num_beds = int(post_title.split("br")[0].split("bedroom")[0].split("Bedroom")[0].strip().split(" ")[-1])
    except:
        num_beds = -1
        print "number of beds not found"
    try:
        square_ft = int(post_title.split("ft&sup2;")[0].strip().split(" ")[-1])
    except:
        square_ft = -1
        print "square feet not found"

    address_test = Address.objects.filter(xstreet0=xstreet0).filter(xstreet1=xstreet1).filter(city=city).filter(region=region)
    if len(address_test) == 0:
        address_obj = Address(xstreet0=xstreet0, xstreet1=xstreet1, city=city, region=region)
        address_obj.save()
    else:
        address_obj = address_test[0]
        print "duplicate address"

    # TODO: make full_address and num_baths mean something
    full_address = False
    num_baths = -1
    apartment_test = Apartment.objects.filter(num_beds=num_beds).filter(num_baths=num_baths).filter(square_ft=square_ft).filter(address_obj=address_obj).filter(full_address=full_address)
    if len(apartment_test) == 0:
        apartment_obj = Apartment(num_beds=num_beds, num_baths=num_baths, square_ft=square_ft, address_obj=address_obj, full_address=full_address)
        apartment_obj.save()
    else:
        apartment_obj = apartment_test[0]
        print "duplicate apartment"

    posting_test = Posting.objects.filter(post_id=post_id)
    if len(posting_test) == 0:
        newpost_obj = Posting(post_title=post_title, post_time=post_time, price=price, post_id=post_id, apartment_obj=apartment_obj, access_time=datetime.now())
        newpost_obj.save()
    else:
        newpost_obj = posting_test[0]
        newpost_obj.access_time = datetime.now()
        newpost_obj.save()
        print "previously seen post"