Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
edx-platform-release
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
1
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package Registry
Operate
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Admin message
code.vt.edu will be down for maintenance from 0530-0630 EDT Wednesday, March 26th
Show more breadcrumbs
Hsin-Yu Chien
edx-platform-release
Commits
7aa1c1c2
Commit
7aa1c1c2
authored
8 years ago
by
Ned Batchelder
Browse files
Options
Downloads
Patches
Plain Diff
Add tests for the new commands
parent
f88181ac
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
pavelib/i18n.py
+5
-12
5 additions, 12 deletions
pavelib/i18n.py
pavelib/paver_tests/test_i18n.py
+134
-0
134 additions, 0 deletions
pavelib/paver_tests/test_i18n.py
with
139 additions
and
12 deletions
pavelib/i18n.py
+
5
−
12
View file @
7aa1c1c2
...
...
@@ -244,9 +244,6 @@ def i18n_release_push():
Push release-specific resources to Transifex.
"""
resources
=
find_release_resources
()
if
resources
is
None
:
return
sh
(
"
i18n_tool transifex push
"
+
"
"
.
join
(
resources
))
...
...
@@ -259,9 +256,6 @@ def i18n_release_pull():
Pull release-specific translations from Transifex.
"""
resources
=
find_release_resources
()
if
resources
is
None
:
return
sh
(
"
i18n_tool transifex pull
"
+
"
"
.
join
(
resources
))
...
...
@@ -273,7 +267,8 @@ def find_release_resources():
two resources defined named
"
release-*
"
. Check that this is true. If
there
'
s a problem, print messages about it.
Returns a list of resource names, or None if the file doesn
'
t validate.
Returns a list of resource names, or raises ValueError if .tx/config
doesn
'
t have two resources.
"""
# An entry in .tx/config for a release will look like this:
...
...
@@ -298,9 +293,7 @@ def find_release_resources():
return
resources
if
len
(
resources
)
==
0
:
print
"
You need two release-* resources defined to use this command.
"
raise
ValueError
(
"
You need two release-* resources defined to use this command.
"
)
else
:
print
"
Strange Transifex config! Found these release-* resources:
"
print
"
\n
"
.
join
(
resources
)
return
None
msg
=
"
Strange Transifex config! Found these release-* resources:
\n
"
+
"
\n
"
.
join
(
resources
)
raise
ValueError
(
msg
)
This diff is collapsed.
Click to expand it.
pavelib/paver_tests/test_i18n.py
0 → 100644
+
134
−
0
View file @
7aa1c1c2
"""
Tests for pavelib/i18n.py.
"""
import
textwrap
import
unittest
from
mock
import
mock_open
,
patch
from
paver.easy
import
task
import
pavelib.i18n
from
pavelib.paver_tests.utils
import
PaverTestCase
TX_CONFIG_SIMPLE
=
"""
\
[main]
host = https://www.transifex.com
[edx-platform.django-partial]
file_filter = conf/locale/<lang>/LC_MESSAGES/django-partial.po
source_file = conf/locale/en/LC_MESSAGES/django-partial.po
source_lang = en
type = PO
[edx-platform.django-studio]
file_filter = conf/locale/<lang>/LC_MESSAGES/django-studio.po
source_file = conf/locale/en/LC_MESSAGES/django-studio.po
source_lang = en
type = PO
"""
TX_CONFIG_RELEASE
=
TX_CONFIG_SIMPLE
+
"""
\
[edx-platform.release-zebrawood]
file_filter = conf/locale/<lang>/LC_MESSAGES/django.po
source_file = conf/locale/en/LC_MESSAGES/django.po
source_lang = en
type = PO
[edx-platform.release-zebrawood-js]
file_filter = conf/locale/<lang>/LC_MESSAGES/djangojs.po
source_file = conf/locale/en/LC_MESSAGES/djangojs.po
source_lang = en
type = PO
"""
def
mocked_i18n_open
(
*
content
):
"""
Helper decorator to mock open() in pavelib.i18n.
Arguments:
content (str): any number of strings, which are dedented, then
concatenated, and then returned as f.read() when pavelib.i18n opens
a file.
"""
read_data
=
""
.
join
(
textwrap
.
dedent
(
c
)
for
c
in
content
)
return
patch
.
object
(
pavelib
.
i18n
,
'
open
'
,
create
=
True
,
new
=
mock_open
(
read_data
=
read_data
))
@task
def
do_nothing
():
"""
Don
'
t do anything, for replacing prerequisite tasks we want to skip.
"""
pass
class
FindReleaseResourcesTest
(
unittest
.
TestCase
):
"""
Tests of pavelib/i18n.py:find_release_resources.
"""
@mocked_i18n_open
(
TX_CONFIG_SIMPLE
)
def
test_no_resources
(
self
):
errmsg
=
r
"
You need two release-\* resources defined to use this command.
"
with
self
.
assertRaisesRegexp
(
ValueError
,
errmsg
):
pavelib
.
i18n
.
find_release_resources
()
@mocked_i18n_open
(
TX_CONFIG_SIMPLE
,
"""
\
[edx-platform.release-zebrawood]
file_filter = conf/locale/<lang>/LC_MESSAGES/django.po
source_file = conf/locale/en/LC_MESSAGES/django.po
source_lang = en
type = PO
"""
)
def
test_one_resource
(
self
):
errmsg
=
r
"
Strange Transifex config! Found these release-\* resources:\nedx-platform.release-zebrawood
"
with
self
.
assertRaisesRegexp
(
ValueError
,
errmsg
):
pavelib
.
i18n
.
find_release_resources
()
@mocked_i18n_open
(
TX_CONFIG_RELEASE
)
def
test_good_resources
(
self
):
self
.
assertEqual
(
pavelib
.
i18n
.
find_release_resources
(),
[
'
edx-platform.release-zebrawood
'
,
'
edx-platform.release-zebrawood-js
'
],
)
class
ReleasePushPullTest
(
PaverTestCase
):
"""
Tests of i18n_release_push and i18n_release_pull.
"""
@mocked_i18n_open
(
TX_CONFIG_SIMPLE
)
@patch.object
(
pavelib
.
i18n
,
'
i18n_generate
'
,
new
=
do_nothing
)
def
test_cant_push_nothing
(
self
):
with
self
.
assertRaises
(
SystemExit
)
as
sysex
:
pavelib
.
i18n
.
i18n_release_push
()
# Check that we exited with a failure status code.
self
.
assertEqual
(
sysex
.
exception
.
args
,
(
1
,))
@mocked_i18n_open
(
TX_CONFIG_SIMPLE
)
def
test_cant_pull_nothing
(
self
):
with
self
.
assertRaises
(
SystemExit
)
as
sysex
:
pavelib
.
i18n
.
i18n_release_pull
()
# Check that we exited with a failure status code.
self
.
assertEqual
(
sysex
.
exception
.
args
,
(
1
,))
@mocked_i18n_open
(
TX_CONFIG_RELEASE
)
@patch.object
(
pavelib
.
i18n
,
'
i18n_generate
'
,
new
=
do_nothing
)
@patch.object
(
pavelib
.
i18n
,
'
sh
'
)
def
test_can_push_release
(
self
,
mock_sh
):
pavelib
.
i18n
.
i18n_release_push
()
mock_sh
.
assert_called_once_with
(
'
i18n_tool transifex push edx-platform.release-zebrawood edx-platform.release-zebrawood-js
'
)
@mocked_i18n_open
(
TX_CONFIG_RELEASE
)
@patch.object
(
pavelib
.
i18n
,
'
sh
'
)
def
test_can_pull_release
(
self
,
mock_sh
):
pavelib
.
i18n
.
i18n_release_pull
()
mock_sh
.
assert_called_once_with
(
'
i18n_tool transifex pull edx-platform.release-zebrawood edx-platform.release-zebrawood-js
'
)
This diff is collapsed.
Click to expand it.
Preview
0%
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