Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
I
internewshid
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
aptivate
client-projects
internewshid
Commits
5d8f91c3
Commit
5d8f91c3
authored
9 years ago
by
Alice Heaton
Browse files
Options
Downloads
Patches
Plain Diff
Implement tests for the AddEditItemView
parent
522fdec3
No related branches found
Branches containing commit
No related tags found
2 merge requests
!37
Items can be edited when form is submitted
,
!36
Edit item frontend
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
django/website/hid/tests/add_edit_item_view_tests.py
+242
-0
242 additions, 0 deletions
django/website/hid/tests/add_edit_item_view_tests.py
with
242 additions
and
0 deletions
django/website/hid/tests/add_edit_item_view_tests.py
0 → 100644
+
242
−
0
View file @
5d8f91c3
from
datetime
import
datetime
from
django.core.urlresolvers
import
reverse
from
django.test
import
RequestFactory
from
mock
import
patch
import
pytest
from
.views_tests
import
fix_messages
from
..views.item
import
AddEditItemView
ReqFactory
=
RequestFactory
()
def
get_view_for_request
(
view_class
,
url_name
,
args
=
None
,
kwargs
=
None
,
request_type
=
'
get
'
,
post
=
None
,
get
=
None
):
"""
Instanciate a class based view for the given request, and
return the view object
Args:
view_class (Class): Class of the view
url_name (str): Name of the url to request
args (list): Arguments passed to reverse
kwargs (dict): Arguments passed to reverse
request_type (str): Type of query. Either
'
get
'
or
'
post
'
post (dict): Arguments passed to post requests
get (dict): Arguemnts passed to get requests
Returns:
object: The instanced view object
"""
if
args
is
None
:
args
=
[]
if
kwargs
is
None
:
kwargs
=
{}
if
post
is
None
:
post
=
{}
if
get
is
None
:
get
=
{}
url
=
reverse
(
url_name
,
args
=
args
,
kwargs
=
kwargs
)
if
request_type
==
'
get
'
:
request
=
ReqFactory
.
get
(
url
,
get
)
else
:
request
=
ReqFactory
.
post
(
url
,
post
)
request
=
fix_messages
(
request
)
view
=
view_class
()
view
.
request
=
request
view
.
args
=
args
view
.
kwargs
=
kwargs
return
view
def
make_request
(
view_class
,
url_name
,
args
=
None
,
kwargs
=
None
,
request_type
=
'
get
'
,
post
=
None
,
get
=
None
):
"""
Perform the given request, and return the view and the response.
Args:
See get_view_for_request
Returns:
(view, response) tupple
"""
view
=
get_view_for_request
(
view_class
,
url_name
,
args
,
kwargs
,
request_type
,
post
,
get
)
if
request_type
==
'
get
'
:
response
=
view
.
get
(
view
.
request
,
*
view
.
args
,
**
view
.
kwargs
)
else
:
response
=
view
.
post
(
view
.
request
,
*
view
.
args
,
**
view
.
kwargs
)
return
(
view
,
response
)
@pytest.fixture
def
generic_item
():
return
{
'
id
'
:
1001
,
'
body
'
:
'
hello
'
,
'
created
'
:
datetime
(
2015
,
5
,
5
),
'
timestamp
'
:
datetime
(
2016
,
6
,
6
),
'
last_updated
'
:
datetime
(
2017
,
7
,
7
),
'
terms
'
:
[
{
'
taxonomy
'
:
'
item-types
'
,
'
name
'
:
'
generic
'
,
'
long_name
'
:
'
Generic
'
},
{
'
taxonomy
'
:
'
a-taxonomy
'
,
'
name
'
:
'
a-term
'
,
'
long_name
'
:
'
A Term
'
}
]
}
def
test_the_item_is_added_to_the_view_on_get_requests
(
generic_item
):
with
patch
(
'
hid.views.item.list
'
)
as
list_item
:
list_item
.
return_value
=
[
generic_item
]
(
view
,
response
)
=
make_request
(
AddEditItemView
,
'
edit-item
'
,
kwargs
=
{
'
item_id
'
:
103
}
)
assert
view
.
item
==
generic_item
def
test_the_item_type_is_added_to_the_view_on_get_requests
(
generic_item
):
with
patch
(
'
hid.views.item.list
'
)
as
list_item
:
list_item
.
return_value
=
[
generic_item
]
(
view
,
response
)
=
make_request
(
AddEditItemView
,
'
edit-item
'
,
kwargs
=
{
'
item_id
'
:
103
}
)
assert
view
.
item_type
[
'
name
'
]
==
'
generic
'
def
test_the_item_terms_are_added_to_the_view_on_get_requests
(
generic_item
):
with
patch
(
'
hid.views.item.list
'
)
as
list_item
:
list_item
.
return_value
=
[
generic_item
]
(
view
,
response
)
=
make_request
(
AddEditItemView
,
'
edit-item
'
,
kwargs
=
{
'
item_id
'
:
103
}
)
assert
view
.
item_terms
==
{
'
item-types
'
:
[{
'
taxonomy
'
:
'
item-types
'
,
'
name
'
:
'
generic
'
,
'
long_name
'
:
'
Generic
'
}],
'
a-taxonomy
'
:
[{
'
taxonomy
'
:
'
a-taxonomy
'
,
'
name
'
:
'
a-term
'
,
'
long_name
'
:
'
A Term
'
}]
}
def
test_the_item_is_added_to_the_view_on_post_requests
(
generic_item
):
with
patch
(
'
hid.views.item.list
'
)
as
list_item
:
list_item
.
return_value
=
[
generic_item
]
(
view
,
response
)
=
make_request
(
AddEditItemView
,
'
edit-item
'
,
kwargs
=
{
'
item_id
'
:
103
},
request_type
=
'
post
'
,
post
=
{
'
action
'
:
'
cancel
'
,
'
next
'
:
''
}
)
assert
view
.
item
==
generic_item
def
test_the_item_type_is_added_to_the_view_on_post_requests
(
generic_item
):
with
patch
(
'
hid.views.item.list
'
)
as
list_item
:
list_item
.
return_value
=
[
generic_item
]
(
view
,
response
)
=
make_request
(
AddEditItemView
,
'
edit-item
'
,
kwargs
=
{
'
item_id
'
:
103
},
request_type
=
'
post
'
,
post
=
{
'
action
'
:
'
cancel
'
,
'
next
'
:
''
}
)
assert
view
.
item_type
[
'
name
'
]
==
'
generic
'
def
test_the_item_terms_are_added_to_the_view_on_post_requests
(
generic_item
):
with
patch
(
'
hid.views.item.list
'
)
as
list_item
:
list_item
.
return_value
=
[
generic_item
]
(
view
,
response
)
=
make_request
(
AddEditItemView
,
'
edit-item
'
,
kwargs
=
{
'
item_id
'
:
103
},
request_type
=
'
post
'
,
post
=
{
'
action
'
:
'
cancel
'
,
'
next
'
:
''
}
)
assert
view
.
item_terms
==
{
'
item-types
'
:
[{
'
taxonomy
'
:
'
item-types
'
,
'
name
'
:
'
generic
'
,
'
long_name
'
:
'
Generic
'
}],
'
a-taxonomy
'
:
[{
'
taxonomy
'
:
'
a-taxonomy
'
,
'
name
'
:
'
a-term
'
,
'
long_name
'
:
'
A Term
'
}]
}
def
test_form_initial_values_set_that_of_item
(
generic_item
):
with
patch
(
'
hid.views.item.list
'
)
as
list_item
:
list_item
.
return_value
=
[
generic_item
]
(
view
,
response
)
=
make_request
(
AddEditItemView
,
'
edit-item
'
,
kwargs
=
{
'
item_id
'
:
103
}
)
initial
=
view
.
get_initial
()
assert
initial
[
'
id
'
]
==
1001
assert
initial
[
'
body
'
]
==
'
hello
'
assert
initial
[
'
timestamp
'
]
==
datetime
(
2016
,
6
,
6
)
def
test_form_next_url_value_set_to_current_url_by_default
(
generic_item
):
with
patch
(
'
hid.views.item.list
'
)
as
list_item
:
list_item
.
return_value
=
[
generic_item
]
(
view
,
response
)
=
make_request
(
AddEditItemView
,
'
edit-item
'
,
kwargs
=
{
'
item_id
'
:
103
}
)
initial
=
view
.
get_initial
()
assert
initial
[
'
next
'
]
==
reverse
(
'
edit-item
'
,
kwargs
=
{
'
item_id
'
:
103
})
def
test_form_next_url_value_set_to_provided_url
(
generic_item
):
with
patch
(
'
hid.views.item.list
'
)
as
list_item
:
list_item
.
return_value
=
[
generic_item
]
(
view
,
response
)
=
make_request
(
AddEditItemView
,
'
edit-item
'
,
kwargs
=
{
'
item_id
'
:
103
},
get
=
{
'
next
'
:
'
http://example.com
'
}
)
initial
=
view
.
get_initial
()
assert
initial
[
'
next
'
]
==
'
http://example.com
'
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment