Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
converse.js
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
converse.js
Commits
4db07e40
Commit
4db07e40
authored
May 04, 2015
by
Michal Čihař
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Share code for overriding settings
Signed-off-by:
Michal Čihař
<
michal@cihar.com
>
parent
134263f2
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
82 additions
and
71 deletions
+82
-71
weblate/accounts/tests.py
weblate/accounts/tests.py
+20
-25
weblate/trans/tests/__init__.py
weblate/trans/tests/__init__.py
+26
-0
weblate/trans/tests/test_advertisement.py
weblate/trans/tests/test_advertisement.py
+6
-6
weblate/trans/tests/test_hooks.py
weblate/trans/tests/test_hooks.py
+16
-16
weblate/trans/tests/test_models.py
weblate/trans/tests/test_models.py
+9
-12
weblate/trans/tests/test_selenium.py
weblate/trans/tests/test_selenium.py
+2
-6
weblate/trans/tests/test_views.py
weblate/trans/tests/test_views.py
+3
-6
No files found.
weblate/accounts/tests.py
View file @
4db07e40
...
...
@@ -52,9 +52,9 @@ from weblate.accounts.models import VerifiedEmail
from
weblate.trans.tests.test_views
import
ViewTestCase
,
RegistrationTestMixin
from
weblate.trans.tests.utils
import
get_test_file
from
weblate.trans.tests
import
OverrideSettings
from
weblate.trans.models.unitdata
import
Suggestion
,
Comment
from
weblate.lang.models
import
Language
from
weblate
import
appsettings
REGISTRATION_DATA
=
{
'username'
:
'username'
,
...
...
@@ -81,9 +81,9 @@ class RegistrationTest(TestCase, RegistrationTestMixin):
reverse
(
'password'
)
)
@
OverrideSettings
(
REGISTRATION_CAPTCHA
=
True
)
def
test_register_captcha
(
self
):
# Enable captcha
appsettings
.
REGISTRATION_CAPTCHA
=
True
response
=
self
.
client
.
post
(
reverse
(
'register'
),
...
...
@@ -94,25 +94,21 @@ class RegistrationTest(TestCase, RegistrationTestMixin):
'Please check your math and try again.'
)
@
OverrideSettings
(
REGISTRATION_OPEN
=
False
)
def
test_register_closed
(
self
):
# Disable registration
appsettings
.
REGISTRATION_OPEN
=
False
try
:
response
=
self
.
client
.
post
(
reverse
(
'register'
),
REGISTRATION_DATA
)
self
.
assertContains
(
response
,
'Sorry, but registrations on this site are disabled.'
)
finally
:
appsettings
.
REGISTRATION_OPEN
=
True
response
=
self
.
client
.
post
(
reverse
(
'register'
),
REGISTRATION_DATA
)
self
.
assertContains
(
response
,
'Sorry, but registrations on this site are disabled.'
)
@
OverrideSettings
(
REGISTRATION_CAPTCHA
=
False
)
def
test_register
(
self
):
# Disable captcha
appsettings
.
REGISTRATION_CAPTCHA
=
False
response
=
self
.
client
.
post
(
reverse
(
'register'
),
REGISTRATION_DATA
...
...
@@ -143,9 +139,6 @@ class RegistrationTest(TestCase, RegistrationTestMixin):
# Verify stored first/last name
self
.
assertEqual
(
user
.
first_name
,
'First Last'
)
# Restore settings
appsettings
.
REGISTRATION_CAPTCHA
=
True
def
test_reset
(
self
):
'''
Test for password reset.
...
...
@@ -343,17 +336,19 @@ class ViewTest(TestCase):
'[Weblate] Message from dark side'
)
def
test_hosting
(
self
):
@
OverrideSettings
(
OFFER_HOSTING
=
False
)
def
test_hosting_disabled
(
self
):
'''
Test for
contact form.
Test for
hosting form with disabled hosting
'''
# Disabled hosting
appsettings
.
OFFER_HOSTING
=
False
response
=
self
.
client
.
get
(
reverse
(
'hosting'
))
self
.
assertRedirects
(
response
,
reverse
(
'home'
))
# Enabled
appsettings
.
OFFER_HOSTING
=
True
@
OverrideSettings
(
OFFER_HOSTING
=
True
)
def
test_hosting
(
self
):
'''
Test for hosting form with enabled hosting.
'''
response
=
self
.
client
.
get
(
reverse
(
'hosting'
))
self
.
assertContains
(
response
,
'id="id_message"'
)
...
...
weblate/trans/tests/__init__.py
View file @
4db07e40
...
...
@@ -17,3 +17,29 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
from
weblate
import
appsettings
class
OverrideSettings
(
object
):
"""
makes a context manager also act as decorator
"""
def
__init__
(
self
,
**
values
):
self
.
_values
=
values
self
.
_backup
=
{}
def
__enter__
(
self
):
for
name
,
value
in
self
.
_values
.
items
():
self
.
_backup
[
name
]
=
getattr
(
appsettings
,
name
)
setattr
(
appsettings
,
name
,
value
)
return
self
def
__exit__
(
self
,
*
args
,
**
kwds
):
for
name
in
self
.
_values
.
keys
():
setattr
(
appsettings
,
name
,
self
.
_backup
[
name
])
def
__call__
(
self
,
func
):
def
wrapper
(
*
args
,
**
kwds
):
with
self
:
return
func
(
*
args
,
**
kwds
)
return
wrapper
weblate/trans/tests/test_advertisement.py
View file @
4db07e40
...
...
@@ -25,34 +25,34 @@ Tests for translation models.
from
django.test
import
TestCase
from
django.utils
import
timezone
from
weblate.trans.models
import
Advertisement
from
weblate
import
apps
ettings
from
weblate
.trans.tests
import
OverrideS
ettings
import
datetime
class
AdvertisementTest
(
TestCase
):
@
OverrideSettings
(
SELF_ADVERTISEMENT
=
False
)
def
test_none
(
self
):
appsettings
.
SELF_ADVERTISEMENT
=
False
adv
=
Advertisement
.
objects
.
get_advertisement
(
Advertisement
.
PLACEMENT_MAIL_TEXT
)
self
.
assertIsNone
(
adv
)
@
OverrideSettings
(
SELF_ADVERTISEMENT
=
True
)
def
test_self
(
self
):
appsettings
.
SELF_ADVERTISEMENT
=
True
adv
=
Advertisement
.
objects
.
get_advertisement
(
Advertisement
.
PLACEMENT_MAIL_TEXT
)
self
.
assertTrue
(
'Weblate'
in
adv
.
text
)
@
OverrideSettings
(
SELF_ADVERTISEMENT
=
True
)
def
test_self_html
(
self
):
appsettings
.
SELF_ADVERTISEMENT
=
True
adv
=
Advertisement
.
objects
.
get_advertisement
(
Advertisement
.
PLACEMENT_MAIL_HTML
)
self
.
assertTrue
(
'Weblate'
in
adv
.
text
)
@
OverrideSettings
(
SELF_ADVERTISEMENT
=
False
)
def
test_existing
(
self
):
appsettings
.
SELF_ADVERTISEMENT
=
False
adv_created
=
Advertisement
.
objects
.
create
(
placement
=
Advertisement
.
PLACEMENT_MAIL_TEXT
,
date_start
=
timezone
.
now
(),
...
...
@@ -67,8 +67,8 @@ class AdvertisementTest(TestCase):
adv
)
@
OverrideSettings
(
SELF_ADVERTISEMENT
=
False
)
def
test_outdated
(
self
):
appsettings
.
SELF_ADVERTISEMENT
=
False
Advertisement
.
objects
.
create
(
placement
=
Advertisement
.
PLACEMENT_MAIL_TEXT
,
date_start
=
timezone
.
now
()
-
datetime
.
timedelta
(
days
=
1
),
...
...
weblate/trans/tests/test_hooks.py
View file @
4db07e40
...
...
@@ -24,7 +24,7 @@ Tests for notification hooks.
from
django.core.urlresolvers
import
reverse
from
weblate.trans.tests.test_views
import
ViewTestCase
from
weblate
import
apps
ettings
from
weblate
.trans.tests
import
OverrideS
ettings
GITHUB_PAYLOAD
=
'''
{
...
...
@@ -211,9 +211,9 @@ BITBUCKET_PAYLOAD_HG_NO_COMMIT = '''
class
HooksViewTest
(
ViewTestCase
):
@
OverrideSettings
(
ENABLE_HOOKS
=
True
)
@
OverrideSettings
(
BACKGROUND_HOOKS
=
False
)
def
test_view_hook_project
(
self
):
appsettings
.
BACKGROUND_HOOKS
=
False
appsettings
.
ENABLE_HOOKS
=
True
response
=
self
.
client
.
get
(
reverse
(
'hook-project'
,
kwargs
=
{
'project'
:
self
.
subproject
.
project
.
slug
...
...
@@ -221,9 +221,9 @@ class HooksViewTest(ViewTestCase):
)
self
.
assertContains
(
response
,
'update triggered'
)
@
OverrideSettings
(
ENABLE_HOOKS
=
True
)
@
OverrideSettings
(
BACKGROUND_HOOKS
=
False
)
def
test_view_hook_subproject
(
self
):
appsettings
.
BACKGROUND_HOOKS
=
False
appsettings
.
ENABLE_HOOKS
=
True
response
=
self
.
client
.
get
(
reverse
(
'hook-subproject'
,
kwargs
=
{
'project'
:
self
.
subproject
.
project
.
slug
,
...
...
@@ -232,56 +232,56 @@ class HooksViewTest(ViewTestCase):
)
self
.
assertContains
(
response
,
'update triggered'
)
@
OverrideSettings
(
ENABLE_HOOKS
=
True
)
@
OverrideSettings
(
BACKGROUND_HOOKS
=
False
)
def
test_view_hook_github
(
self
):
appsettings
.
BACKGROUND_HOOKS
=
False
appsettings
.
ENABLE_HOOKS
=
True
response
=
self
.
client
.
post
(
reverse
(
'hook-github'
),
{
'payload'
:
GITHUB_PAYLOAD
}
)
self
.
assertContains
(
response
,
'update triggered'
)
@
OverrideSettings
(
ENABLE_HOOKS
=
True
)
@
OverrideSettings
(
BACKGROUND_HOOKS
=
False
)
def
test_view_hook_gitlab
(
self
):
appsettings
.
BACKGROUND_HOOKS
=
False
appsettings
.
ENABLE_HOOKS
=
True
response
=
self
.
client
.
post
(
reverse
(
'hook-gitlab'
),
GITLAB_PAYLOAD
,
content_type
=
"application/json"
)
self
.
assertContains
(
response
,
'update triggered'
)
@
OverrideSettings
(
ENABLE_HOOKS
=
True
)
@
OverrideSettings
(
BACKGROUND_HOOKS
=
False
)
def
test_view_hook_bitbucket_git
(
self
):
appsettings
.
BACKGROUND_HOOKS
=
False
appsettings
.
ENABLE_HOOKS
=
True
response
=
self
.
client
.
post
(
reverse
(
'hook-bitbucket'
),
{
'payload'
:
BITBUCKET_PAYLOAD_GIT
}
)
self
.
assertContains
(
response
,
'update triggered'
)
@
OverrideSettings
(
ENABLE_HOOKS
=
True
)
@
OverrideSettings
(
BACKGROUND_HOOKS
=
False
)
def
test_view_hook_bitbucket_hg
(
self
):
appsettings
.
BACKGROUND_HOOKS
=
False
appsettings
.
ENABLE_HOOKS
=
True
response
=
self
.
client
.
post
(
reverse
(
'hook-bitbucket'
),
{
'payload'
:
BITBUCKET_PAYLOAD_HG
}
)
self
.
assertContains
(
response
,
'update triggered'
)
@
OverrideSettings
(
ENABLE_HOOKS
=
True
)
@
OverrideSettings
(
BACKGROUND_HOOKS
=
False
)
def
test_view_hook_bitbucket_hg_no_commit
(
self
):
appsettings
.
BACKGROUND_HOOKS
=
False
appsettings
.
ENABLE_HOOKS
=
True
response
=
self
.
client
.
post
(
reverse
(
'hook-bitbucket'
),
{
'payload'
:
BITBUCKET_PAYLOAD_HG_NO_COMMIT
}
)
self
.
assertContains
(
response
,
'update triggered'
)
@
OverrideSettings
(
ENABLE_HOOKS
=
False
)
def
test_disabled
(
self
):
'''
Test for hooks disabling.
'''
appsettings
.
ENABLE_HOOKS
=
False
response
=
self
.
client
.
get
(
reverse
(
'hook-project'
,
kwargs
=
{
'project'
:
self
.
subproject
.
project
.
slug
...
...
weblate/trans/tests/test_models.py
View file @
4db07e40
...
...
@@ -34,6 +34,7 @@ from weblate.trans.models import (
)
from
weblate.trans.models.source
import
Source
from
weblate
import
appsettings
from
weblate.trans.tests
import
OverrideSettings
from
weblate.trans.tests.utils
import
get_test_file
from
weblate.trans.vcs
import
GitRepository
,
HgRepository
from
weblate.trans.search
import
clean_indexes
...
...
@@ -298,19 +299,15 @@ class ProjectTest(RepoTestCase):
def
test_wrong_path
(
self
):
project
=
self
.
create_project
()
backup
=
appsettings
.
DATA_DIR
appsettings
.
DATA_DIR
=
'/weblate-nonexisting-path'
with
OverrideSettings
(
DATA_DIR
=
'/weblate-nonexisting-path'
):
# Invalidate cache, pylint: disable=W0212
project
.
_dir_path
=
None
# Invalidate cache, pylint: disable=W0212
project
.
_dir_path
=
None
self
.
assertRaisesMessage
(
ValidationError
,
'Could not create project directory'
,
project
.
full_clean
)
appsettings
.
DATA_DIR
=
backup
self
.
assertRaisesMessage
(
ValidationError
,
'Could not create project directory'
,
project
.
full_clean
)
def
test_acl
(
self
):
"""
...
...
weblate/trans/tests/test_selenium.py
View file @
4db07e40
...
...
@@ -13,8 +13,8 @@ import json
import
httplib
import
base64
from
weblate
import
appsettings
from
weblate.trans.tests.test_views
import
RegistrationTestMixin
from
weblate.trans.tests
import
OverrideSettings
# Check whether we should run Selenium tests
DO_SELENIUM
=
(
...
...
@@ -181,13 +181,11 @@ class SeleniumTests(LiveServerTestCase, RegistrationTestMixin):
(
self
.
live_server_url
,
self
.
assert_registration_mailbox
())
)
@
OverrideSettings
(
REGISTRATION_CAPTCHA
=
False
)
def
test_register
(
self
,
clear
=
False
):
"""
Test registration.
"""
# We don't want captcha
appsettings
.
REGISTRATION_CAPTCHA
=
False
url
=
self
.
register_user
()
# Delete all cookies
...
...
@@ -213,8 +211,6 @@ class SeleniumTests(LiveServerTestCase, RegistrationTestMixin):
'You have activated'
in
self
.
driver
.
find_element_by_tag_name
(
'body'
).
text
)
# Restore
appsettings
.
REGISTRATION_CAPTCHA
=
True
def
test_register_nocookie
(
self
):
"""
...
...
weblate/trans/tests/test_views.py
View file @
4db07e40
...
...
@@ -34,11 +34,11 @@ from django.contrib.messages.storage.fallback import FallbackStorage
from
django.core
import
mail
from
PIL
import
Image
from
weblate
import
appsettings
from
weblate.trans.models.whiteboard
import
WhiteboardMessage
from
weblate.trans.models.changes
import
Change
from
weblate.trans.tests.test_models
import
RepoTestCase
from
weblate.accounts.models
import
Profile
from
weblate.trans.tests
import
OverrideSettings
class
RegistrationTestMixin
(
object
):
...
...
@@ -878,11 +878,8 @@ class HomeViewTest(ViewTestCase):
response
=
self
.
client
.
get
(
reverse
(
'home'
))
self
.
assertContains
(
response
,
'Test/Test'
)
@
OverrideSettings
(
ENABLE_WHITEBOARD
=
True
)
def
test_home_with_whiteboard
(
self
):
# @override_settings decorator does not work becase
# appsettings.ENABLE_WHITEBOARD is just a constant that is being
# assigned during first import
appsettings
.
ENABLE_WHITEBOARD
=
True
msg
=
WhiteboardMessage
(
message
=
'test_message'
)
msg
.
save
()
...
...
@@ -890,8 +887,8 @@ class HomeViewTest(ViewTestCase):
self
.
assertContains
(
response
,
'whiteboard'
)
self
.
assertContains
(
response
,
'test_message'
)
@
OverrideSettings
(
ENABLE_WHITEBOARD
=
False
)
def
test_home_without_whiteboard
(
self
):
appsettings
.
ENABLE_WHITEBOARD
=
False
response
=
self
.
client
.
get
(
reverse
(
'home'
))
self
.
assertNotContains
(
response
,
'whiteboard'
)
...
...
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