def test_parse_ad(self): response = ''' {"response":[ {"id":"607256","campaign_id":"123","name":"Ad1","status":0,"approved":0,"all_limit":0,"cost_type":0,"cpm":118}, {"id":"664868","campaign_id":"123","name":"Ad2","status":1,"approved":1,"all_limit":100,"cost_type":1,"cpc":488} ]} ''' account = AccountFactory(remote_id=1) campaign = CampaignFactory(account=account, remote_id=1, fetched=datetime.now()) instance = Ad(campaign=campaign, fetched=datetime.now()) instance.parse(json.loads(response)['response'][0]) instance.save(commit_remote=False) self.assertTrue(isinstance(instance.campaign, Campaign)) self.assertEqual(instance.campaign.remote_id, 1) self.assertEqual(instance.remote_id, 607256) self.assertEqual(instance.name, "Ad1") self.assertEqual(instance.status, False) self.assertEqual(instance.approved, False) self.assertEqual(instance.all_limit, 0) self.assertEqual(instance.cpm, 118) instance = Ad(campaign=campaign, fetched=datetime.now()) instance.parse(json.loads(response)['response'][1]) instance.save(commit_remote=False) self.assertEqual(instance.remote_id, 664868) self.assertEqual(instance.name, "Ad2") self.assertEqual(instance.status, True) self.assertEqual(instance.approved, True) self.assertEqual(instance.all_limit, 100) self.assertEqual(instance.cpc, 488)
def new_ad(request): if request.method == 'POST': form = AdForm(request.POST, request.FILES) if form.is_valid(): title_url = title_url1 = slugify(form.cleaned_data['title']) tmp = 0 while Ad.objects.filter(title_url=title_url1).count() > 0: tmp += 1 title_url1 = title_url + '-' + str(tmp) title_url = title_url1 ad = Ad(user_id=request.user.id, title = form.cleaned_data['title']) ad.city = form.cleaned_data['city'] ad.address = form.cleaned_data['address'] ad.psc = form.cleaned_data['psc'] ad.category = form.cleaned_data['category'] ad.text_of_ad = form.cleaned_data['text_of_ad'] ad.type_of_ad = form.cleaned_data['type_of_ad'] ad.is_new = form.cleaned_data['is_new'] ad.is_antique = form.cleaned_data['is_antique'] ad.is_inventory = form.cleaned_data['is_inventory'] ad.can_be_reservated = form.cleaned_data['can_be_reservated'] ad.time_of_publication = datetime.datetime.now() ad.title_url = title_url ad.latitude, ad.longitude = getGPS(ad.address, ad.city.city, ad.psc) ad.save() if form.cleaned_data['image1'] != None: image1 = AdImage(ad_id=ad.id, image=form.cleaned_data['image1']) image1.save() if form.cleaned_data['image2'] != None: image2 = AdImage(ad_id=ad.id, image=form.cleaned_data['image2']) image2.save() if form.cleaned_data['image3'] != None: image3 = AdImage(ad_id=ad.id, image=form.cleaned_data['image3']) image3.save() if form.cleaned_data['image4'] != None: image4 = AdImage(ad_id=ad.id, image=form.cleaned_data['image4']) image4.save() messages.info(request, 'Vaše inzerát bol pridaný') return HttpResponseRedirect('/') else: form = AdForm(initial={'type_of_ad': True}) page_info = {} page_info['title'] = 'Informácie o Vás - Váš profil' page_info['page'] = 0 page_info['form_name'] = 'new_ad' page_info['form_action'] = '/pridat-inzerat/' return render_to_response('pridaj_inzerat.html', {'form': form, 'countInfo': countInfo, 'recentNews': recentNews, 'page_info': page_info}, context_instance=RequestContext(request))
def add_db_entry(url, title): """ Adds the ad to the db :param url: :param title: :return: """ row = Ad(url=url, title=title) try: row.save() except DatabaseError as e: logging.exception(e)
def test_crud_ad(self): account = AccountFactory(remote_id=ACCOUNT_ID) client = ClientFactory(remote_id=CLIENT_ID, account=account) campaign = Campaign.remote.create(account=account, client=client, name='Test_campaign1', day_limit=1000, all_limit=2000) image = Image(**IMAGE_INITIAL_FIELDS) self.objects_to_delete += [campaign] self.assertTrue(campaign.remote_id > 0) # create ad = Ad(campaign=campaign, name='Test_ad1', status=False, cost_type=0, image=image, cpc=100, layout__title='111', layout__link_url='http://ya.ru', layout__description='q'*50) ad.save() self.objects_to_delete += [ad] # create another image.id = None ad = Ad.remote.create(campaign=campaign, name='Test_ad2', status=False, cost_type=0, image=image, cpc=100, layout__title='111', layout__link_url='http://ya.ru', layout__description='q'*50) self.objects_to_delete += [ad] self.assertTrue(ad.remote_id > 0) self.assertEqual(ad.name, 'Test_ad2') self.assertEqual(ad.status, False) self.assertEqual(ad.cost_type, 0) self.assertEqual(ad.cpc, 100) # update ad.name = 'Test_ad3' ad.save() campaign.fetch_ads(ids=[ad.remote_id]) ad1 = Ad.objects.get(remote_id=ad.remote_id) self.assertTrue(ad1.name == ad.name == 'Test_ad3') self.assertEqual(ad1.cpc, 100) # delete ad1.delete() self.assertEqual(Ad.objects.filter(remote_id=ad.remote_id)[0].archived, True) campaign.fetch_ads(ids=[ad.remote_id]) self.assertEqual(Ad.objects.filter(remote_id=ad.remote_id)[0].archived, True) campaign.delete() self.objects_to_delete = []
def success(request): website = None tmpname = request.POST['website_name'] tmpurl = request.POST['website_url'] try: website = Website.objects.get(url=tmpurl) except Website.DoesNotExist: website = Website(name=tmpname, url=tmpurl) website.save() data = json.loads(request.POST['ads']) for ad in data: a = Ad(name=ad['fields']['name'], age=ad['fields']['age'], ethnicity=ad['fields']['ethnicity'], phone_number=ad['fields']['phone_number'], location=ad['fields']['location'], ad=ad['fields']['ad'], date=ad['fields']['date'], website=website) a.save() return HttpResponse("Success! <a href=\"/upload/\">Add More</a> <a href=\"/\">Home</a>")