示例#1
0
    def test_save_processes_keywords_correctly(self):
        """
        Saving the form should update the keywords correctly.
        - Removed keywords should be removed
        - New keywords should be added
        - Remaining keywords should remain
        """
        user = UserFactory.create()
        task = TaskFactory.create()
        TaskKeywordFactory.create_batch(3, task=task)
        data = {
            'keywords': 'test3, new_keyword',
            'team': task.team.id,
        }
        for field in ('name', 'short_description', 'execution_time', 'difficulty',
                      'repeatable', 'instructions', 'is_draft'):
            data[field] = getattr(task, field)
        form = TaskForm(instance=task, data=data)
        form.save(user)

        removed_keyword = TaskKeyword.objects.filter(task=task, name='test1')
        eq_(len(removed_keyword), 0)

        added_keyword = TaskKeyword.objects.filter(task=task, name='new_keyword')
        eq_(len(added_keyword), 1)

        kept_keyword = TaskKeyword.objects.filter(task=task, name='test3')
        eq_(len(kept_keyword), 1)

        # double-check on the keywords_list property
        eq_(task.keywords_list, 'test3, new_keyword')
示例#2
0
    def test_save_processes_keywords_correctly(self):
        """
        Saving the form should update the keywords correctly.
        - Removed keywords should be removed
        - New keywords should be added
        - Remaining keywords should remain
        """
        user = UserFactory.create()
        task = TaskFactory.create()
        TaskKeywordFactory.create_batch(3, task=task)
        form = get_filled_taskform(task, keywords='test3, new_keyword')
        form.save(user)

        removed_keyword = TaskKeyword.objects.filter(task=task, name='test1')
        eq_(len(removed_keyword), 0)

        added_keyword = TaskKeyword.objects.filter(task=task,
                                                   name='new_keyword')
        eq_(len(added_keyword), 1)

        kept_keyword = TaskKeyword.objects.filter(task=task, name='test3')
        eq_(len(kept_keyword), 1)

        # double-check on the keywords_list property
        eq_(task.keywords_list, 'test3, new_keyword')
示例#3
0
 def test_initial_contains_list_of_keywords_for_existing_task(self):
     """
     Initial should contain the list of keywords from the task instance.
     """
     task = TaskFactory.create()
     TaskKeywordFactory.create_batch(3, task=task)
     form = TaskForm(instance=task)
     eq_(sorted(form.initial['keywords']), sorted('test1, test2, test3'))
示例#4
0
 def test_keywords_list_returns_expected_string(self):
     """
     keywords_list should return a comma delimited list of keywords.
     """
     TaskKeywordFactory.create_batch(4, task=self.task_draft)
     keywords = TaskKeyword.objects.filter(task=self.task_draft)
     expected_keywords = ', '.join([keyword.name for keyword in keywords])
     eq_(self.task_draft.keywords_list, expected_keywords)
 def test_keywords_list_returns_expected_string(self):
     """
     keywords_list should return a comma delimited list of keywords.
     """
     TaskKeywordFactory.create_batch(4, task=self.task_draft)
     keywords = TaskKeyword.objects.filter(task=self.task_draft)
     expected_keywords = ', '.join([keyword.name for keyword in keywords])
     eq_(self.task_draft.keywords_list, expected_keywords)
示例#6
0
 def test_initial_contains_list_of_keywords_for_existing_task(self):
     """
     Initial should contain the list of keywords from the task instance.
     """
     task = TaskFactory.create()
     TaskKeywordFactory.create_batch(3, task=task)
     form = TaskForm(instance=task)
     eq_(form.initial['keywords'], 'test1, test2, test3')
示例#7
0
 def test_get_form_kwargs_populates_form_with_data_to_be_cloned(self):
     """
     When accessed via the tasks.clone url, the view displays a form
     whose initial data is that of the task being cloned, except for
     the 'name' field, which should be prefixed with 'Copy of '
     """
     user = UserFactory.create()
     original_task = TaskFactory.create()
     TaskKeywordFactory.create_batch(3, task=original_task)
     original_data = get_filled_taskform(original_task).data
     self.view.kwargs = {'clone': original_task.pk}
     self.view.request = Mock(user=user)
     with patch('oneanddone.tasks.views.generic.CreateView.get_form_kwargs') as get_form_kwargs:
         get_form_kwargs.return_value = {'initial': {}}
         initial = self.view.get_form_kwargs()['initial']
     eq_(initial['keywords'], original_task.keywords_list)
     eq_(initial['name'], ' '.join(['Copy of', original_task.name]))
     del original_data['name']
     assert_dict_contains_subset(original_data, initial)
示例#8
0
 def test_get_form_kwargs_populates_form_with_data_to_be_cloned(self):
     """
     When accessed via the tasks.clone url, the view displays a form
     whose initial data is that of the task being cloned, except for
     the 'name' field, which should be prefixed with 'Copy of '
     """
     user = UserFactory.create()
     original_task = TaskFactory.create()
     TaskKeywordFactory.create_batch(3, task=original_task)
     original_data = get_filled_taskform(original_task).data
     self.view.kwargs = {'clone': original_task.pk}
     self.view.request = Mock(user=user)
     with patch('oneanddone.tasks.views.generic.CreateView.get_form_kwargs'
                ) as get_form_kwargs:
         get_form_kwargs.return_value = {'initial': {}}
         initial = self.view.get_form_kwargs()['initial']
     eq_(initial['keywords'], original_task.keywords_list)
     eq_(initial['name'], ' '.join(['Copy of', original_task.name]))
     del original_data['name']
     assert_dict_contains_subset(original_data, initial)
示例#9
0
    def test_save_processes_keywords_correctly(self):
        """
        Saving the form should update the keywords correctly.
        - Removed keywords should be removed
        - New keywords should be added
        - Remaining keywords should remain
        """
        TaskKeywordFactory.create_batch(3, task=self.task)
        form = get_filled_taskform(self.task, keywords='test3, new_keyword')
        form.save(self.user)

        removed_keyword = TaskKeyword.objects.filter(task=self.task, name='test1')
        eq_(len(removed_keyword), 0)

        added_keyword = TaskKeyword.objects.filter(task=self.task, name='new_keyword')
        eq_(len(added_keyword), 1)

        kept_keyword = TaskKeyword.objects.filter(task=self.task, name='test3')
        eq_(len(kept_keyword), 1)

        # double-check on the keywords_list property
        eq_(sorted(self.task.keywords_list), sorted('test3, new_keyword'))