Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-notes-api
Overview
Overview
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
edx
edx-notes-api
Commits
53d56806
Commit
53d56806
authored
Jan 12, 2015
by
Oleg Marshev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Skip es checking when ES_DISABLED.
parent
2e065fd2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
39 additions
and
28 deletions
+39
-28
notesserver/test_views.py
+23
-6
notesserver/views.py
+16
-22
No files found.
notesserver/test_views.py
View file @
53d56806
import
base64
import
base64
import
datetime
import
datetime
from
unittest
import
skipIf
from
mock
import
patch
,
Mock
from
mock
import
patch
,
Mock
from
django.conf
import
settings
from
django.conf
import
settings
from
django.core.urlresolvers
import
reverse
from
django.core.urlresolvers
import
reverse
...
@@ -17,13 +18,10 @@ class OperationalEndpointsTest(APITestCase):
...
@@ -17,13 +18,10 @@ class OperationalEndpointsTest(APITestCase):
Heartbeat endpoint success.
Heartbeat endpoint success.
"""
"""
response
=
self
.
client
.
get
(
reverse
(
'heartbeat'
))
response
=
self
.
client
.
get
(
reverse
(
'heartbeat'
))
if
settings
.
ES_DISABLED
:
self
.
assertEquals
(
response
.
status_code
,
200
)
self
.
assertEquals
(
response
.
status_code
,
500
)
self
.
assertEquals
(
response
.
data
,
{
"OK"
:
True
})
self
.
assertEquals
(
response
.
data
,
{
"OK"
:
False
,
'check'
:
'es'
})
else
:
self
.
assertEquals
(
response
.
status_code
,
200
)
self
.
assertEquals
(
response
.
data
,
{
"OK"
:
True
})
@skipIf
(
settings
.
ES_DISABLED
,
"Do not test if Elasticsearch service is disabled."
)
@patch
(
'notesserver.views.get_es'
)
@patch
(
'notesserver.views.get_es'
)
def
test_heartbeat_failure_es
(
self
,
mocked_get_es
):
def
test_heartbeat_failure_es
(
self
,
mocked_get_es
):
"""
"""
...
@@ -65,6 +63,7 @@ class OperationalEndpointsTest(APITestCase):
...
@@ -65,6 +63,7 @@ class OperationalEndpointsTest(APITestCase):
response
=
self
.
client
.
get
(
reverse
(
'selftest'
))
response
=
self
.
client
.
get
(
reverse
(
'selftest'
))
self
.
assertEquals
(
response
.
status_code
,
200
)
self
.
assertEquals
(
response
.
status_code
,
200
)
@skipIf
(
settings
.
ES_DISABLED
,
"Do not test if Elasticsearch service is disabled."
)
@patch
(
'notesserver.views.datetime'
,
datetime
=
Mock
(
wraps
=
datetime
.
datetime
))
@patch
(
'notesserver.views.datetime'
,
datetime
=
Mock
(
wraps
=
datetime
.
datetime
))
@patch
(
'notesserver.views.get_es'
)
@patch
(
'notesserver.views.get_es'
)
def
test_selftest_data
(
self
,
mocked_get_es
,
mocked_datetime
):
def
test_selftest_data
(
self
,
mocked_get_es
,
mocked_datetime
):
...
@@ -84,6 +83,24 @@ class OperationalEndpointsTest(APITestCase):
...
@@ -84,6 +83,24 @@ class OperationalEndpointsTest(APITestCase):
}
}
)
)
@patch
(
'django.conf.settings.ES_DISABLED'
,
True
)
@patch
(
'notesserver.views.datetime'
,
datetime
=
Mock
(
wraps
=
datetime
.
datetime
))
def
test_selftest_data_es_disabled
(
self
,
mocked_datetime
):
"""
Test returned data on success.
"""
mocked_datetime
.
datetime
.
now
.
return_value
=
datetime
.
datetime
(
2014
,
12
,
11
)
response
=
self
.
client
.
get
(
reverse
(
'selftest'
))
self
.
assertEquals
(
response
.
status_code
,
200
)
self
.
assertEquals
(
response
.
data
,
{
"db"
:
"OK"
,
"time_elapsed"
:
0.0
}
)
@skipIf
(
settings
.
ES_DISABLED
,
"Do not test if Elasticsearch service is disabled."
)
@patch
(
'notesserver.views.get_es'
)
@patch
(
'notesserver.views.get_es'
)
def
test_selftest_failure_es
(
self
,
mocked_get_es
):
def
test_selftest_failure_es
(
self
,
mocked_get_es
):
"""
"""
...
...
notesserver/views.py
View file @
53d56806
...
@@ -15,17 +15,6 @@ if not settings.ES_DISABLED:
...
@@ -15,17 +15,6 @@ if not settings.ES_DISABLED:
def
get_es
():
def
get_es
():
return
connections
[
'default'
]
.
get_backend
()
.
conn
return
connections
[
'default'
]
.
get_backend
()
.
conn
else
:
from
mock
import
Mock
def
get_es
():
return
Mock
(
ping
=
lambda
:
None
,
info
=
lambda
:
{
'ok'
:
None
,
'status'
:
203
,
# request processed, information may be from another source
},
)
@api_view
([
'GET'
])
@api_view
([
'GET'
])
...
@@ -51,7 +40,7 @@ def heartbeat(request): # pylint: disable=unused-argument
...
@@ -51,7 +40,7 @@ def heartbeat(request): # pylint: disable=unused-argument
except
Exception
:
except
Exception
:
return
Response
({
"OK"
:
False
,
"check"
:
"db"
},
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
return
Response
({
"OK"
:
False
,
"check"
:
"db"
},
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
if
not
get_es
()
.
ping
():
if
not
settings
.
ES_DISABLED
and
not
get_es
()
.
ping
():
return
Response
({
"OK"
:
False
,
"check"
:
"es"
},
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
return
Response
({
"OK"
:
False
,
"check"
:
"es"
},
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
return
Response
({
"OK"
:
True
})
return
Response
({
"OK"
:
True
})
...
@@ -65,13 +54,14 @@ def selftest(request): # pylint: disable=unused-argument
...
@@ -65,13 +54,14 @@ def selftest(request): # pylint: disable=unused-argument
"""
"""
start
=
datetime
.
datetime
.
now
()
start
=
datetime
.
datetime
.
now
()
try
:
if
not
settings
.
ES_DISABLED
:
es_status
=
get_es
()
.
info
()
try
:
except
TransportError
:
es_status
=
get_es
()
.
info
()
return
Response
(
except
TransportError
:
{
"es_error"
:
traceback
.
format_exc
()},
return
Response
(
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
{
"es_error"
:
traceback
.
format_exc
()},
)
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
try
:
try
:
db_status
()
db_status
()
...
@@ -85,11 +75,15 @@ def selftest(request): # pylint: disable=unused-argument
...
@@ -85,11 +75,15 @@ def selftest(request): # pylint: disable=unused-argument
end
=
datetime
.
datetime
.
now
()
end
=
datetime
.
datetime
.
now
()
delta
=
end
-
start
delta
=
end
-
start
return
Response
({
response
=
{
"es"
:
es_status
,
"db"
:
database
,
"db"
:
database
,
"time_elapsed"
:
int
(
delta
.
total_seconds
()
*
1000
)
# In milliseconds.
"time_elapsed"
:
int
(
delta
.
total_seconds
()
*
1000
)
# In milliseconds.
})
}
if
not
settings
.
ES_DISABLED
:
response
[
'es'
]
=
es_status
return
Response
(
response
)
def
db_status
():
def
db_status
():
...
...
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