def test_can_find_product_by_primary_key(self): dataset = Dataset(version='1', name='test-dataset') dataset.save() product = Product(name='test-product', dataset=dataset, url='test-url') product.save() saved_products = Product.objects.all() first_product = saved_products[0]
def test_can_match_product_and_task_by_dataset(self): dataset1 = Dataset(name='dataset1', version='1') dataset1.save() dataset2 = Dataset(name='dataset2', version='1') dataset2.save() product1 = Product(dataset=dataset1, name='product1', url='111') product1.save() product2 = Product() product2.dataset = dataset2 product2.name = 'product2' product2.url = '222' product2.save() task1 = OpTask(dataset=dataset1, name='task1') task1.save() task2 = OpTask(dataset=dataset2, name='task2') task2.save() saved_products = Product.objects.all() first_product = saved_products[0] first_dataset = first_product.dataset second_product = saved_products[1] second_dataset = second_product.dataset first_matched_tasks = first_dataset.optask_set.all() first_task = first_matched_tasks[0] second_matched_tasks = second_dataset.optask_set.all() second_task = second_matched_tasks[0] self.assertEqual(first_product.dataset, first_task.dataset) self.assertEqual(second_product.dataset, second_task.dataset)
def test_can_create_products_and_tasks(self): dataset1 = Dataset(name='dataset1', version='1') dataset1.save() dataset2 = Dataset(name='dataset2', version='1') dataset2.save() product1 = Product(dataset=dataset1, name='product1', url='111') product1.save() product2 = Product() product2.dataset = dataset2 product2.name = 'product2' product2.url = '222' product2.save() task1 = OpTask(dataset=dataset1, name='task1') task1.save() task2 = OpTask(dataset=dataset2, name='task2') task2.save() saved_products = Product.objects.all() first_product = saved_products[0] second_product = saved_products[1] self.assertEqual(saved_products.count(), 2) self.assertNotEqual(first_product.dataset, None) self.assertNotEqual(second_product.dataset, None)
def test_can_find_users_tasks(self): # create a bunch of users user1 = User(username='******', password=make_password('John')) user1.save() userprofile1 = UserProfile(user=user1) userprofile1.save() user2 = User(username='******', password=make_password('Paul')) user2.save() userprofile2 = UserProfile(user=user2) userprofile2.save() user3 = User(username='******', password=make_password('Ringo')) user3.save() userprofile3 = UserProfile(user=user3) userprofile3.save() # assign them some tasks testdata = Dataset(name='testdata', version='1') testdata.save() testproduct = Product(dataset=testdata, name='testproduct', url='testproduct') testproduct.save() testtask1 = OpTask(dataset=testdata, name='task1') testtask1.save() testtask2 = OpTask(dataset=testdata, name='task2') testtask2.save() test_tli_1 = TaskListItem(userprofile=userprofile1, product=testproduct, op_task=testtask1, index=0) test_tli_1.save() test_tli_2 = TaskListItem(userprofile=userprofile1, product=testproduct, op_task=testtask2, index=1) test_tli_2.save() test_tlis = TaskListItem.objects.all() self.assertEqual(test_tlis.count(), 2) # find the matches based on user profiles saved_userprofiles = UserProfile.objects.all() for userprofile in saved_userprofiles: matched_task_items = userprofile.tasklistitem_set.all() if userprofile.user.username == 'John': self.assertEqual(matched_task_items.count(), 2) else: self.assertEqual(matched_task_items.count(), 0)
def test_can_find_users_tasks(self): # create a bunch of users user1 = User(username='******', password=make_password('John')) user1.save() userprofile1 = UserProfile(user=user1) userprofile1.save() user2 = User(username='******', password=make_password('Paul')) user2.save() userprofile2 = UserProfile(user=user2) userprofile2.save() user3 = User(username='******', password=make_password('Ringo')) user3.save() userprofile3 = UserProfile(user=user3) userprofile3.save() # assign them some tasks testdata = Dataset(name='testdata', version='1') testdata.save() testproduct = Product(dataset=testdata, name='testproduct', url='testproduct') testproduct.save() testtask1 = OpTask(dataset=testdata, name='task1') testtask1.save() testtask2 = OpTask(dataset=testdata, name='task2') testtask2.save() test_tli_1 = TaskListItem(userprofile=userprofile1, product=testproduct, op_task=testtask1, index=0) test_tli_1.save() test_tli_2 = TaskListItem(userprofile=userprofile1, product=testproduct, op_task=testtask2, index=1) test_tli_2.save() test_tlis = TaskListItem.objects.all() self.assertEqual(test_tlis.count(),2) # find the matches based on user profiles saved_userprofiles = UserProfile.objects.all() for userprofile in saved_userprofiles: matched_task_items = userprofile.tasklistitem_set.all() if userprofile.user.username == 'John': self.assertEqual(matched_task_items.count(),2) else: self.assertEqual(matched_task_items.count(),0)
def test_can_find_product_by_primary_key(self): dataset = Dataset(version='1', name='test-dataset') dataset.save() product = Product(name='test-product', dataset=dataset, url='test-url') product.save() saved_products = Product.objects.all() first_product = saved_products[0] # print first_product.id # def test_can_find_users_by_experiment(self): # True
def _create_data(self): experiment = Experiment(name='Test-exp', task_count=2, task_length=30, has_achievements=True, has_intake=True, has_followup=True, auto_tasking=True, sequential_tasks=True, consent=True) experiment.save() dataset = Dataset(name='Test-DS', version='v0.1') dataset.save() Product(dataset=dataset, url='/static/testing/index.html', instructions=settings.STATIC_URL + 'testing/instructions.html', team='test-team', name='test-product', version='v0.1').save() for task in test_tasks: newtask = OpTask(dataset=dataset, name=task['name'], survey_url=task['ot_survey_url'], exit_url=task['ot_exit_url']).save()
def test_can_add_and_retrieve_database_items(self): dataset = Dataset() dataset.version = '1' dataset.name = 'test' dataset.save() product = Product() product.dataset = dataset product.url = 'http://www.cnn.com' product.team = 'CNN' product.name = 'CNN News' product.version = '1' product.instructions = 'http://www.cnn.com' product.save() saved_products = Product.objects.all() self.assertEqual(saved_products.count(), 1)
def test_can_edit_product_details(self): dataset = Dataset(version='1', name='test-dataset') dataset.save() product = Product(name='test-product', dataset=dataset, url='test-url') product.save() saved_products = Product.objects.all() self.assertEqual(saved_products.count(), 1) first_product = saved_products[0] self.assertEqual(first_product.name, 'test-product') first_product.name = 'new-name' first_product.save() new_saved_products = Product.objects.all() self.assertEqual(new_saved_products.count(), 1) new_first_product = new_saved_products[0] self.assertEqual(new_first_product.name, 'new-name')
def test_can_count_completed_tasks(self): dataset = Dataset(version='1', name='test') dataset.save() task = OpTask(dataset=dataset, name='test_task', survey_url='test_url') task.save() user = User(username='******', password=make_password('paul')) user.save() userprofile = UserProfile(user=user) userprofile.save() product = Product(dataset=dataset, url='test_url') product.save() TaskListItem( userprofile=userprofile, op_task=task, product=product, index=0, task_active=True, task_complete=False, exit_active=False, exit_complete=False).save() TaskListItem( userprofile=userprofile, op_task=task, product=product, index=1, task_active=False, task_complete=True, exit_active=False, exit_complete=False).save() saved_tasks = TaskListItem.objects.all() self.assertEqual(saved_tasks.count(), 2) self.assertEqual(saved_tasks.filter(task_active=True).count(), 1) self.assertEqual(saved_tasks.filter(task_complete=False).count(), 1)
def test_can_add_and_retrieve_database_items(self): dataset = Dataset() dataset.version = '1' dataset.name = 'test' dataset.save() product = Product() product.dataset = dataset product.url = 'http://www.cnn.com' product.team = 'CNN' product.name = 'CNN News' product.version = '1' product.instructions = 'http://www.cnn.com' product.save() saved_products = Product.objects.all() self.assertEqual(saved_products.count(),1)
def test_can_count_completed_tasks(self): dataset = Dataset(version='1', name='test') dataset.save() task = OpTask(dataset=dataset, name='test_task', survey_url='test_url') task.save() user = User(username='******', password=make_password('paul')) user.save() userprofile = UserProfile(user=user) userprofile.save() product = Product(dataset=dataset, url='test_url') product.save() TaskListItem(userprofile=userprofile, op_task=task, product=product, index=0, task_active=True, task_complete=False, exit_active=False, exit_complete=False).save() TaskListItem(userprofile=userprofile, op_task=task, product=product, index=1, task_active=False, task_complete=True, exit_active=False, exit_complete=False).save() saved_tasks = TaskListItem.objects.all() self.assertEqual(saved_tasks.count(), 2) self.assertEqual(saved_tasks.filter(task_active=True).count(), 1) self.assertEqual(saved_tasks.filter(task_complete=False).count(), 1)
def test_saving_and_retrieving_product(self): dataset = Dataset() dataset.version = '1' dataset.name = 'test' dataset.save() product = Product() product.dataset = dataset product.url = 'http://espn.go.com' product.team = 'ESPN' product.name = 'ESPNews' product.version = '1' product.instructions = 'http://www.si.com' product.save() saved_products = Product.objects.all() self.assertEqual(saved_products.count(), 1) first_product = saved_products[0] self.assertEqual(first_product.url, 'http://espn.go.com') self.assertEqual(first_product.team, 'ESPN') self.assertEqual(first_product.name, 'ESPNews') self.assertEqual(first_product.version, '1') self.assertEqual(first_product.instructions, 'http://www.si.com')
def setUp(self): # REALLY REALLY should do this soon... # TODO find a way to call populate_db experiment = Experiment(name='Test-exp', task_count=2, task_length=30, has_achievements=True, has_intake=True, has_followup=True, auto_tasking=True) experiment.save() test_tasks = [{ 'name': 'Functional-Test-OT1', 'ot_survey_url': 'https://www.surveymonkey.com/s/LR37HZG', 'ot_exit_url': 'https://www.surveymonkey.com/s/VD8NQZT' }, { 'name': 'Functional-Test-OT2', 'ot_survey_url': 'https://www.surveymonkey.com/s/LR37HZG', 'ot_exit_url': 'https://www.surveymonkey.com/s/VD8NQZT' }] dataset = Dataset(name='Functional-Test-DS', version='v0.1') dataset.save() Product(dataset=dataset, url='/static/testing/index.html', instructions=settings.STATIC_URL + 'testing/instructions.html', team='functional-test-team', name='functional-test-product', version='v0.1').save() for task in test_tasks: newtask = OpTask(dataset=dataset, name=task['name'], survey_url=task['ot_survey_url'], exit_url=task['ot_exit_url']).save() self.browser = webdriver.Firefox() self.browser.implicitly_wait(3)
def new_product(request): if user_authorized(request): product = Product(name=request.POST['product_name']) product.url = request.POST['product_url'] product.team = request.POST['product_team'] product.url = request.POST['product_url'] product.version = request.POST['product_version'] product.instructions = request.POST['product_instructions'] product.is_active = request.POST.get('product_active', False) dataset = Dataset.objects.get(name=request.POST['product_dataset']) product.dataset = dataset product.save() return redirect('exp_portal:view_products')