コード例 #1
0
def test_form_project_tag_resources_submit_bad(project_a):
    # tests the various reasons a form is not valid

    form = LinkTagResourcesAdminForm(project=project_a, data={})
    assert not form.is_valid()
    assert (form.errors == {
        'tag': [u'This field is required.'],
        'type': [u'This field is required.'],
    })

    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(type='foo'),
    )
    assert not form.is_valid()
    assert (form.errors == {
        'tag': [u'This field is required.'],
        'type': [
            u'Select a valid choice. '
            u'foo is not one of the available choices.',
        ],
    })

    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(type='assoc', tag='DOESNOTEXIST'),
    )
    assert not form.is_valid()
    assert (form.errors == {'tag': [u'Unrecognized tag: DOESNOTEXIST']})
コード例 #2
0
def test_form_project_tag_resources_submit(paths_mock, project_a, tag_a):
    # tests submitting with no data - which should return a list of paths
    # _clean_paths_for_select
    paths_mock.return_value = 23

    # test assoc form submit
    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(type='assoc', tag=tag_a.slug),
    )
    assert form.is_valid()
    assert (form.cleaned_data == {
        'action': None,
        'data': 23,
        'search': u'',
        'tag': u'tag',
        'type': u'assoc',
    })

    # test nonassoc form submit
    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(type='nonassoc', tag=tag_a.slug),
    )
    assert form.is_valid()
    assert (form.cleaned_data == {
        'action': None,
        'data': 23,
        'search': u'',
        'tag': u'tag',
        'type': u'nonassoc',
    })
コード例 #3
0
ファイル: forms.py プロジェクト: ywarnier/pontoon
def test_form_project_tag_resources_submit_paths(paths_mock, project0, tag0):
    # tests submitting with data, which should validate using
    # _clean_paths_for_submit
    paths_mock.return_value = 113

    # test assoc form submit
    form = LinkTagResourcesAdminForm(
        project=project0,
        data=dict(type='assoc',
                  tag=tag0.slug,
                  data=list(tag0.resources.values_list('path', flat=True))))
    assert form.is_valid()
    assert (form.cleaned_data == {
        'action': form.tag_tool.unlink_resources,
        'data': 113,
        'search': u'',
        'tag': u'tag0',
        'type': u'assoc'
    })

    # test nonassoc form submit
    form = LinkTagResourcesAdminForm(
        project=project0,
        data=dict(type='nonassoc',
                  tag=tag0.slug,
                  data=list(tag0.resources.values_list('path', flat=True))))
    assert form.is_valid()
    assert (form.cleaned_data == {
        'action': form.tag_tool.link_resources,
        'data': 113,
        'search': u'',
        'tag': u'tag0',
        'type': u'nonassoc'
    })
コード例 #4
0
ファイル: test_forms.py プロジェクト: timvisee/pontoon
def test_form_project_tag_resources_submit_bad(project_a):
    # tests the various reasons a form is not valid

    form = LinkTagResourcesAdminForm(project=project_a, data={})
    assert not form.is_valid()
    assert form.errors == {
        "tag": [u"This field is required."],
        "type": [u"This field is required."],
    }

    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(type="foo"),
    )
    assert not form.is_valid()
    assert form.errors == {
        "tag": [u"This field is required."],
        "type": [
            u"Select a valid choice. "
            u"foo is not one of the available choices.",
        ],
    }

    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(type="assoc", tag="DOESNOTEXIST"),
    )
    assert not form.is_valid()
    assert form.errors == {"tag": [u"Unrecognized tag: DOESNOTEXIST"]}
コード例 #5
0
ファイル: test_forms.py プロジェクト: sa-tasche/pontoon
def test_form_project_tag_resources_submit(paths_mock, project_a, tag_a):
    # tests submitting with no data - which should return a list of paths
    # _clean_paths_for_select
    paths_mock.return_value = 23

    # test assoc form submit
    form = LinkTagResourcesAdminForm(
        project=project_a, data=dict(type="assoc", tag=tag_a.slug),
    )
    assert form.is_valid()
    assert form.cleaned_data == {
        "action": None,
        "data": 23,
        "search": u"",
        "tag": u"tag",
        "type": u"assoc",
    }

    # test nonassoc form submit
    form = LinkTagResourcesAdminForm(
        project=project_a, data=dict(type="nonassoc", tag=tag_a.slug),
    )
    assert form.is_valid()
    assert form.cleaned_data == {
        "action": None,
        "data": 23,
        "search": u"",
        "tag": u"tag",
        "type": u"nonassoc",
    }
コード例 #6
0
ファイル: test_forms.py プロジェクト: Pike/pontoon
def test_form_project_tag_resources_submit_paths(paths_mock, project_a, tag_a):
    # tests submitting with data, which should validate using
    # _clean_paths_for_submit
    paths_mock.return_value = 113

    # test assoc form submit
    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(
            type='assoc',
            tag=tag_a.slug,
            data=list(tag_a.resources.values_list('path', flat=True)),
        ),
    )
    assert form.is_valid()
    assert (
        form.cleaned_data
        == {
            'action': form.tag_tool.unlink_resources,
            'data': 113,
            'search': u'',
            'tag': u'tag',
            'type': u'assoc',
        }
    )

    # test nonassoc form submit
    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(
            type='nonassoc',
            tag=tag_a.slug,
            data=list(tag_a.resources.values_list('path', flat=True)),
        ),
    )
    assert form.is_valid()
    assert (
        form.cleaned_data
        == {
            'action': form.tag_tool.link_resources,
            'data': 113,
            'search': u'',
            'tag': u'tag',
            'type': u'nonassoc',
        }
    )
コード例 #7
0
ファイル: test_forms.py プロジェクト: sa-tasche/pontoon
def test_form_project_tag_resources_submit_paths(paths_mock, project_a, tag_a):
    # tests submitting with data, which should validate using
    # _clean_paths_for_submit
    paths_mock.return_value = 113

    # test assoc form submit
    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(
            type="assoc",
            tag=tag_a.slug,
            data=list(tag_a.resources.values_list("path", flat=True)),
        ),
    )
    assert form.is_valid()
    assert form.cleaned_data == {
        "action": form.tag_tool.unlink_resources,
        "data": 113,
        "search": u"",
        "tag": u"tag",
        "type": u"assoc",
    }

    # test nonassoc form submit
    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(
            type="nonassoc",
            tag=tag_a.slug,
            data=list(tag_a.resources.values_list("path", flat=True)),
        ),
    )
    assert form.is_valid()
    assert form.cleaned_data == {
        "action": form.tag_tool.link_resources,
        "data": 113,
        "search": u"",
        "tag": u"tag",
        "type": u"nonassoc",
    }
コード例 #8
0
def test_form_project_tag_resources(client, project_a, tag_a):
    # tests instantiation of TagResourcesForm

    with pytest.raises(KeyError):
        # needs a project
        LinkTagResourcesAdminForm()

    form = LinkTagResourcesAdminForm(project=project_a)
    assert not form.is_valid()
    assert form.project == project_a
    assert list(form.fields.keys()) == ['tag', 'type', 'data', 'search']
    assert (list(form.fields['data'].choices) == list(
        Resource.objects.filter(project=project_a).values_list('path', 'pk')))
コード例 #9
0
ファイル: forms.py プロジェクト: ywarnier/pontoon
def test_form_project_tag_resources_submit_paths_bad(paths_mock, project0,
                                                     tag0):
    # tests that the form should not be valid if _clean_paths_for_submit
    # raises a ValidationError
    paths_mock.side_effect = forms.ValidationError('Ooops!')

    form = LinkTagResourcesAdminForm(
        project=project0,
        data=dict(type='assoc',
                  tag=tag0.slug,
                  data=list(tag0.resources.values_list('path', flat=True))))
    assert not form.is_valid()
    assert form.errors == {'data': [u'Ooops!']}
コード例 #10
0
ファイル: test_forms.py プロジェクト: timvisee/pontoon
def test_form_project_tag_resources(client, project_a, tag_a):
    # tests instantiation of TagResourcesForm

    with pytest.raises(KeyError):
        # needs a project
        LinkTagResourcesAdminForm()

    form = LinkTagResourcesAdminForm(project=project_a)
    assert not form.is_valid()
    assert form.project == project_a
    assert list(form.fields.keys()) == ["tag", "type", "data", "search"]
    assert list(form.fields["data"].choices) == list(
        Resource.objects.filter(project=project_a).values_list("path", "pk"))
コード例 #11
0
ファイル: test_forms.py プロジェクト: Pike/pontoon
def test_form_project_tag_resources_submit(paths_mock, project_a, tag_a):
    # tests submitting with no data - which should return a list of paths
    # _clean_paths_for_select
    paths_mock.return_value = 23

    # test assoc form submit
    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(type='assoc', tag=tag_a.slug),
    )
    assert form.is_valid()
    assert (
        form.cleaned_data
        == {
            'action': None,
            'data': 23,
            'search': u'',
            'tag': u'tag',
            'type': u'assoc',
        }
    )

    # test nonassoc form submit
    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(type='nonassoc', tag=tag_a.slug),
    )
    assert form.is_valid()
    assert (
        form.cleaned_data
        == {
            'action': None,
            'data': 23,
            'search': u'',
            'tag': u'tag',
            'type': u'nonassoc',
        }
    )
コード例 #12
0
ファイル: test_forms.py プロジェクト: Pike/pontoon
def test_form_project_tag_resources_submit_bad(project_a):
    # tests the various reasons a form is not valid

    form = LinkTagResourcesAdminForm(project=project_a, data={})
    assert not form.is_valid()
    assert (
        form.errors
        == {
            'tag': [u'This field is required.'],
            'type': [u'This field is required.'],
        }
    )

    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(type='foo'),
    )
    assert not form.is_valid()
    assert (
        form.errors
        == {
            'tag': [u'This field is required.'],
            'type': [
                u'Select a valid choice. '
                u'foo is not one of the available choices.',
            ],
        }
    )

    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(type='assoc', tag='DOESNOTEXIST'),
    )
    assert not form.is_valid()
    assert (
        form.errors
        == {'tag': [u'Unrecognized tag: DOESNOTEXIST']}
    )
コード例 #13
0
ファイル: test_forms.py プロジェクト: sa-tasche/pontoon
def test_form_project_tag_resources_submit_paths_bad(paths_mock, project_a, tag_a):
    # tests that the form should not be valid if _clean_paths_for_submit
    # raises a ValidationError
    paths_mock.side_effect = forms.ValidationError("Ooops!")

    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(
            type="assoc",
            tag=tag_a.slug,
            data=list(tag_a.resources.values_list("path", flat=True)),
        ),
    )
    assert not form.is_valid()
    assert form.errors == {"data": [u"Ooops!"]}
コード例 #14
0
ファイル: test_forms.py プロジェクト: Pike/pontoon
def test_form_project_tag_resources_submit_paths_bad(
    paths_mock, project_a, tag_a
):
    # tests that the form should not be valid if _clean_paths_for_submit
    # raises a ValidationError
    paths_mock.side_effect = forms.ValidationError('Ooops!')

    form = LinkTagResourcesAdminForm(
        project=project_a,
        data=dict(
            type='assoc',
            tag=tag_a.slug,
            data=list(tag_a.resources.values_list('path', flat=True)),
        ),
    )
    assert not form.is_valid()
    assert form.errors == {'data': [u'Ooops!']}
コード例 #15
0
ファイル: test_forms.py プロジェクト: Pike/pontoon
def test_form_project_tag_resources(client, project_a, tag_a):
    # tests instantiation of TagResourcesForm

    with pytest.raises(KeyError):
        # needs a project
        LinkTagResourcesAdminForm()

    form = LinkTagResourcesAdminForm(project=project_a)
    assert not form.is_valid()
    assert form.project == project_a
    assert form.fields.keys() == ['tag', 'type', 'data', 'search']
    assert (
        list(form.fields['data'].choices)
        == list(
            Resource.objects.filter(project=project_a)
            .values_list('path', 'pk')
        )
    )