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']})
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', })
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' })
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"]}
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", }
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', } )
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", }
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')))
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!']}
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"))
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', } )
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']} )
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!"]}
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!']}
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') ) )