Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
J
jumpserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
jumpserver
Commits
c37dea20
Commit
c37dea20
authored
Aug 23, 2016
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add user add view Test Case
parent
b55b516f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
48 additions
and
8 deletions
+48
-8
_header_bar.html
apps/templates/_header_bar.html
+1
-1
models.py
apps/users/models.py
+2
-2
tests.py
apps/users/tests.py
+45
-5
No files found.
apps/templates/_header_bar.html
View file @
c37dea20
<div
class=
"row border-bottom"
>
<div
class=
"row border-bottom"
>
<nav
class=
"navbar navbar-static-top"
role=
"navigation"
style=
"margin-bottom: 0"
>
<nav
class=
"navbar navbar-static-top
white-bg
"
role=
"navigation"
style=
"margin-bottom: 0"
>
<div
class=
"navbar-header"
>
<div
class=
"navbar-header"
>
<a
class=
"navbar-minimalize minimalize-styl-2 btn btn-primary "
href=
"#"
><i
class=
"fa fa-bars"
></i>
</a>
<a
class=
"navbar-minimalize minimalize-styl-2 btn btn-primary "
href=
"#"
><i
class=
"fa fa-bars"
></i>
</a>
<form
role=
"search"
class=
"navbar-form-custom"
method=
"get"
action=
""
>
<form
role=
"search"
class=
"navbar-form-custom"
method=
"get"
action=
""
>
...
...
apps/users/models.py
View file @
c37dea20
...
@@ -130,13 +130,13 @@ class User(AbstractUser):
...
@@ -130,13 +130,13 @@ class User(AbstractUser):
# If user not set name, it's default equal username
# If user not set name, it's default equal username
if
not
self
.
name
:
if
not
self
.
name
:
self
.
name
=
self
.
username
self
.
name
=
self
.
username
super
(
User
,
self
)
.
save
(
args
,
**
kwargs
)
super
(
User
,
self
)
.
save
(
*
args
,
**
kwargs
)
# Set user default group 'All'
# Set user default group 'All'
# Todo: It's have bug
# Todo: It's have bug
group
=
UserGroup
.
initial
()
group
=
UserGroup
.
initial
()
if
group
not
in
self
.
groups
.
all
():
if
group
not
in
self
.
groups
.
all
():
self
.
groups
.
add
(
group
)
self
.
groups
.
add
(
group
)
super
(
User
,
self
)
.
save
(
args
,
**
kwargs
)
# super(User, self).save(*
args, **kwargs)
class
Meta
:
class
Meta
:
db_table
=
'user'
db_table
=
'user'
...
...
apps/users/tests.py
View file @
c37dea20
...
@@ -10,6 +10,7 @@ from django.test.utils import setup_test_environment
...
@@ -10,6 +10,7 @@ from django.test.utils import setup_test_environment
from
django.db
import
IntegrityError
,
transaction
from
django.db
import
IntegrityError
,
transaction
from
.models
import
User
,
UserGroup
,
Role
,
init_all_models
from
.models
import
User
,
UserGroup
,
Role
,
init_all_models
from
django.contrib.auth.models
import
Permission
from
django.contrib.auth.models
import
Permission
from
django.conf
import
settings
def
gen_username
():
def
gen_username
():
...
@@ -24,6 +25,11 @@ def gen_name():
...
@@ -24,6 +25,11 @@ def gen_name():
return
forgery_py
.
name
.
full_name
()
return
forgery_py
.
name
.
full_name
()
def
get_role
():
role
=
choice
(
Role
.
objects
.
all
())
return
role
class
UserModelTest
(
TransactionTestCase
):
class
UserModelTest
(
TransactionTestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
init_all_models
()
init_all_models
()
...
@@ -123,18 +129,52 @@ class UserGroupModelTestCase(TransactionTestCase):
...
@@ -123,18 +129,52 @@ class UserGroupModelTestCase(TransactionTestCase):
pass
pass
class
UserListViewTests
(
TestCase
):
class
UserListViewTests
(
T
ransactionT
estCase
):
def
setUp
(
self
):
def
setUp
(
self
):
init_all_models
()
init_all_models
()
User
.
generate_fake
()
def
test_list_view_with_one_user
(
self
):
def
test_a_new_user_in_list
(
self
):
username
=
gen_username
()
user
=
User
(
username
=
username
,
email
=
gen_email
(),
role
=
get_role
())
user
.
save
()
response
=
self
.
client
.
get
(
reverse
(
'users:user-list'
))
self
.
assertContains
(
response
,
username
)
def
test_list_view_with_admin_user
(
self
):
response
=
self
.
client
.
get
(
reverse
(
'users:user-list'
))
response
=
self
.
client
.
get
(
reverse
(
'users:user-list'
))
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertContains
(
response
,
'Admin'
)
self
.
assertContains
(
response
,
'Admin'
)
self
.
assert
QuerysetEqual
(
response
.
context
[
'user_list'
],
[
repr
(
user
)
for
user
in
User
.
objects
.
all
()]
)
self
.
assert
Equal
(
response
.
context
[
'user_list'
]
.
count
(),
User
.
objects
.
all
()
.
count
()
)
def
test_pagination
(
self
):
def
test_pagination
(
self
):
settings
.
CONFIG
.
DISPLAY_PER_PAGE
=
10
User
.
generate_fake
(
count
=
20
)
response
=
self
.
client
.
get
(
reverse
(
'users:user-list'
))
self
.
assertEqual
(
response
.
context
[
'is_paginated'
],
True
)
class
UserAddTests
(
TestCase
):
def
setUp
(
self
):
init_all_models
()
def
test_add_a_new_user
(
self
):
username
=
gen_username
()
data
=
{
'username'
:
username
,
'comment'
:
''
,
'name'
:
gen_name
(),
'email'
:
gen_email
(),
'groups'
:
[
UserGroup
.
objects
.
first
()
.
id
,
],
'role'
:
get_role
()
.
id
,
'date_expired'
:
'2086-08-06 19:12:22'
,
}
response
=
self
.
client
.
post
(
reverse
(
'users:user-add'
),
data
)
self
.
assertEqual
(
response
.
status_code
,
302
)
self
.
assertEqual
(
response
[
'location'
],
reverse
(
'users:user-list'
))
response
=
self
.
client
.
get
(
reverse
(
'users:user-list'
))
response
=
self
.
client
.
get
(
reverse
(
'users:user-list'
))
self
.
assertContains
(
response
.
status_code
,
200
)
self
.
assertContains
(
response
,
username
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment