Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
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-platform
Commits
7b4e806e
Commit
7b4e806e
authored
Jun 27, 2014
by
Adam
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #4233 from edx/alex/geoip-none-ip-fix
Do not look for country if no new ip.
parents
0c202cb1
39f2aabd
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
1 deletions
+18
-1
common/djangoapps/geoinfo/middleware.py
+4
-1
common/djangoapps/geoinfo/tests/test_middleware.py
+14
-0
No files found.
common/djangoapps/geoinfo/middleware.py
View file @
7b4e806e
...
...
@@ -32,7 +32,10 @@ class CountryMiddleware(object):
new_ip_address
=
get_real_ip
(
request
)
old_ip_address
=
request
.
session
.
get
(
'ip_address'
,
None
)
if
new_ip_address
!=
old_ip_address
:
if
not
new_ip_address
and
old_ip_address
:
del
request
.
session
[
'ip_address'
]
del
request
.
session
[
'country_code'
]
elif
new_ip_address
!=
old_ip_address
:
country_code
=
pygeoip
.
GeoIP
(
settings
.
GEOIP_PATH
)
.
country_code_by_addr
(
new_ip_address
)
request
.
session
[
'country_code'
]
=
country_code
request
.
session
[
'ip_address'
]
=
new_ip_address
...
...
common/djangoapps/geoinfo/tests/test_middleware.py
View file @
7b4e806e
...
...
@@ -92,3 +92,17 @@ class CountryMiddlewareTests(TestCase):
# Country code is not changed.
self
.
assertEqual
(
'CN'
,
request
.
session
.
get
(
'country_code'
))
self
.
assertEqual
(
'117.79.83.100'
,
request
.
session
.
get
(
'ip_address'
))
def
test_ip_address_is_none
(
self
):
# IP address is not defined in request.
request
=
self
.
request_factory
.
get
(
'/somewhere'
)
request
.
user
=
self
.
anonymous_user
# Run process_request to set up the session in the request
# to be able to override it.
self
.
session_middleware
.
process_request
(
request
)
request
.
session
[
'country_code'
]
=
'CN'
request
.
session
[
'ip_address'
]
=
'117.79.83.1'
self
.
country_middleware
.
process_request
(
request
)
# No country code exists after request processing.
self
.
assertNotIn
(
'country_code'
,
request
.
session
)
self
.
assertNotIn
(
'ip_address'
,
request
.
session
)
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