def test_creates_new_nomination(self):
        project = factories.ProjectFactory()
        nominator = factories.NominatorFactory()
        form_data = {'url_value': 'http://www.example.com'}
        scope_value = 1
        results = url_handler.nominate_url(project, nominator, form_data, scope_value)[0]
        expected = 'You have successfully nominated {0}'.format(form_data['url_value'])

        assert results == expected
    def test_nomination_gets_modified(self, scope_value, scope):
        project = factories.ProjectFactory()
        nominator = factories.NominatorFactory()
        form_data = {'url_value': 'http://www.example.com'}
        factories.NominatedURLFactory(
            url_nominator=nominator,
            url_project=project,
            entity=form_data['url_value'],
            value='1' if scope_value == '0' else '0'
        )
        results = url_handler.nominate_url(project, nominator, form_data, scope_value)[0]

        assert 'successfully' in results
        assert scope in results
    def test_nomination_exists(self, scope_value, scope):
        project = factories.ProjectFactory()
        nominator = factories.NominatorFactory()
        form_data = {'url_value': 'http://www.example.com'}
        factories.NominatedURLFactory(
            url_nominator=nominator,
            url_project=project,
            entity=form_data['url_value'],
            value=scope_value
        )
        results = url_handler.nominate_url(project, nominator, form_data, scope_value)[0]

        assert 'already' in results
        assert scope in results
    def test_cannot_create_nomination(self):
        project = nominator = scope_value = None
        form_data = {}

        with pytest.raises(http.Http404):
            url_handler.nominate_url(project, nominator, form_data, scope_value)