def testBasic(self): # No odesk association - display alert resp = self.c.get(reverse('project_wizard'), follow=True) with open('test_golds.csv', 'wb') as f: f.write('"http://google.com",No\n') f.write('"http://google.com/1",No\n') f.write('"http://google.com/2",No\n') f.write('"http://google.com/5",No\n') f.write('"http://google.com/3",Yes\n') f.write('"http://google.com/4",No\n') f.flush() with open('test_golds.csv', 'rb') as f: # Full values provided for source, name in JOB_DATA_SOURCE_CHOICES: for submit in ['draft', 'active']: no_of_urls = 1 data = { 'topic': 'Test', 'topic_desc': 'Test desc', 'data_source': source, 'no_of_urls': no_of_urls, 'file_gold_urls': f, 'same_domain': '1', 'stripeToken': 'abc', 'submit': submit } resp = self.c.post(reverse('project_wizard'), data, follow=True) f.seek(0) if Job.estimate_cost(source, no_of_urls) > 0: # We need to provide correct stripe token. self.assertTemplateUsed( resp, 'main/project/wizard-form-error.html') else: # For free project we don't need payment self.assertTemplateUsed(resp, 'main/project/overview.html') # Check project topic and description data = { 'topic_desc': 'Test desc', 'data_source': '1', 'no_of_urls': '1', 'file_gold_urls': f, 'same_domain': '1', 'stripeToken': 'abc', 'submit': 'draft' } resp = self.c.post(reverse('project_wizard'), data, follow=True) f.seek(0) self.assertFormError(resp, 'topic_form', 'topic', 'Please input project topic.') data = { 'topic': 'Test', 'data_source': '1', 'no_of_urls': '1', 'file_gold_urls': f, 'same_domain': '1', 'stripeToken': 'abc', 'submit': 'draft' } resp = self.c.post(reverse('project_wizard'), data, follow=True) f.seek(0) self.assertFormError(resp, 'topic_form', 'topic_desc', 'Please input project topic description.') data = { 'topic': 'Test', 'data_source': '1', 'no_of_urls': '1', 'file_gold_urls': f, 'same_domain': '1', 'stripeToken': '', 'submit': 'draft' } resp = self.c.post(reverse('project_wizard'), data, follow=True) f.seek(0) self.assertFormError(resp, 'topic_form', 'topic_desc', 'Please input project topic description.') data = { 'topic': 'Test', 'topic_desc': 'a', 'data_source': '1', 'no_of_urls': '1', 'file_gold_urls': f, 'same_domain': '1', 'stripeToken': 'abc', 'submit': 'active' } resp = self.c.post(reverse('project_wizard'), data, follow=True) f.seek(0) self.assertEqual(resp.status_code, 200) os.unlink('test_golds.csv')
def testBasic(self): # No odesk association - display alert resp = self.c.get(reverse('project_wizard'), follow=True) with open('test_golds.csv', 'wb') as f: f.write('"http://google.com",No\n') f.write('"http://google.com/1",No\n') f.write('"http://google.com/2",No\n') f.write('"http://google.com/5",No\n') f.write('"http://google.com/3",Yes\n') f.write('"http://google.com/4",No\n') f.flush() with open('test_golds.csv', 'rb') as f: # Full values provided for source, name in JOB_DATA_SOURCE_CHOICES: for submit in ['draft', 'active']: no_of_urls = 1 data = {'topic': 'Test', 'topic_desc': 'Test desc', 'data_source': source, 'no_of_urls': no_of_urls, 'file_gold_urls': f, 'same_domain': '1', 'stripeToken': 'abc', 'submit': submit} resp = self.c.post(reverse('project_wizard'), data, follow=True) f.seek(0) if Job.estimate_cost(source, no_of_urls) > 0: # We need to provide correct stripe token. self.assertTemplateUsed(resp, 'main/project/wizard-form-error.html') else: # For free project we don't need payment self.assertTemplateUsed(resp, 'main/project/overview.html') # Check project topic and description data = {'topic_desc': 'Test desc', 'data_source': '1', 'no_of_urls': '1', 'file_gold_urls': f, 'same_domain': '1', 'stripeToken': 'abc', 'submit': 'draft'} resp = self.c.post(reverse('project_wizard'), data, follow=True) f.seek(0) self.assertFormError(resp, 'topic_form', 'topic', 'Please input project topic.') data = {'topic': 'Test', 'data_source': '1', 'no_of_urls': '1', 'file_gold_urls': f, 'same_domain': '1', 'stripeToken': 'abc', 'submit': 'draft'} resp = self.c.post(reverse('project_wizard'), data, follow=True) f.seek(0) self.assertFormError(resp, 'topic_form', 'topic_desc', 'Please input project topic description.') data = {'topic': 'Test', 'data_source': '1', 'no_of_urls': '1', 'file_gold_urls': f, 'same_domain': '1', 'stripeToken': '', 'submit': 'draft'} resp = self.c.post(reverse('project_wizard'), data, follow=True) f.seek(0) self.assertFormError(resp, 'topic_form', 'topic_desc', 'Please input project topic description.') data = {'topic': 'Test', 'topic_desc': 'a', 'data_source': '1', 'no_of_urls': '1', 'file_gold_urls': f, 'same_domain': '1', 'stripeToken': 'abc', 'submit': 'active'} resp = self.c.post(reverse('project_wizard'), data, follow=True) f.seek(0) self.assertEqual(resp.status_code, 200) os.unlink('test_golds.csv')
if classify_file: try: urls = csv.reader(classify_file) classify_urls = [line[0] for line in urls] params['classify_urls'] = json.dumps(classify_urls) except csv.Error, e: request.session['error'] = e return redirect('index') except: request.session['error'] =\ 'Classify urls file has incorrect format.' return render(request, 'main/project/wizard.html', RequestContext(request, context)) job_charge = None job_cost = Job.estimate_cost(int(params['data_source']), params['no_of_urls']) if job_cost >= 0.5: if not stripe_token: context['wizard_error'] = 'No Stripe payment' return render(request, 'main/project/wizard.html', RequestContext(request, context)) description = "Customer for User %s in job: %s " % ( request.user.id, params['title']) try: job_charge = JobCharge.objects.base_from_token( stripe_token, description) except JobChargeException, e: context['wizard_error'] = e.message return render(request, 'main/project/wizard.html', RequestContext(request, context)) elif Job.is_paid_source(int(params['data_source'])):