Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
sams-classes
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
coding-at-fu
sams-classes
Commits
d101508e
Commit
d101508e
authored
8 years ago
by
Sebastian Lobinger
Browse files
Options
Downloads
Plain Diff
Merge branch 'master' into 11-write-example-app
parents
f44f722c
877eb550
Branches
Branches containing commit
Tags
Tags containing commit
1 merge request
!10
Resolve "Example App schreiben"
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
sams_classes/sams_app.py
+2
-2
2 additions, 2 deletions
sams_classes/sams_app.py
test/test_sams_app.py
+30
-20
30 additions, 20 deletions
test/test_sams_app.py
test/test_sams_hub.py
+50
-37
50 additions, 37 deletions
test/test_sams_hub.py
with
82 additions
and
59 deletions
sams_classes/sams_app.py
+
2
−
2
View file @
d101508e
...
@@ -6,7 +6,7 @@ from .exceptions import (
...
@@ -6,7 +6,7 @@ from .exceptions import (
,
FunctionNotExists
,
FunctionNotExists
)
)
from
.sams_proxy
import
SAMSProxy
from
.sams_proxy
import
SAMSProxy
import
sys
import
sys
,
copy
def
eprint
(
*
args
,
**
kwargs
):
def
eprint
(
*
args
,
**
kwargs
):
print
(
*
args
,
file
=
sys
.
stderr
,
**
kwargs
)
print
(
*
args
,
file
=
sys
.
stderr
,
**
kwargs
)
...
@@ -37,7 +37,7 @@ class SAMSApp:
...
@@ -37,7 +37,7 @@ class SAMSApp:
def
lang
(
self
,
langCode
:
str
)
->
dict
:
def
lang
(
self
,
langCode
:
str
)
->
dict
:
request_lang
=
self
.
langDict
.
get
(
langCode
,
{})
request_lang
=
self
.
langDict
.
get
(
langCode
,
{})
lang
=
self
.
langDict
[
self
.
__manifest
[
'
default_language
'
]]
lang
=
copy
.
deepcopy
(
self
.
langDict
[
self
.
__manifest
[
'
default_language
'
]]
)
lang
.
update
(
request_lang
)
lang
.
update
(
request_lang
)
return
lang
return
lang
...
...
This diff is collapsed.
Click to expand it.
test/test_sams_app.py
+
30
−
20
View file @
d101508e
...
@@ -9,6 +9,7 @@ from sams_classes.exceptions import (
...
@@ -9,6 +9,7 @@ from sams_classes.exceptions import (
from
flask
import
Blueprint
,
Flask
from
flask
import
Blueprint
,
Flask
from
.helper_classes
import
FlaskInThread
from
.helper_classes
import
FlaskInThread
import
requests
import
requests
import
copy
def
eprint
(
*
args
,
**
kwargs
):
def
eprint
(
*
args
,
**
kwargs
):
print
(
*
args
,
file
=
sys
.
stderr
,
**
kwargs
)
print
(
*
args
,
file
=
sys
.
stderr
,
**
kwargs
)
...
@@ -89,7 +90,8 @@ class TestSAMSApp(unittest.TestCase):
...
@@ -89,7 +90,8 @@ class TestSAMSApp(unittest.TestCase):
'
overwritten
'
:
'
Will overwrite default if requested
'
'
overwritten
'
:
'
Will overwrite default if requested
'
}
}
app
=
SAMSApp
(
name
=
'
test
'
,
manifest
=
manifest
app
=
SAMSApp
(
name
=
'
test
'
,
manifest
=
manifest
,
langDict
=
{
'
de
'
:
default_lang
,
'
en
'
:
request_lang
})
,
langDict
=
{
'
de
'
:
copy
.
deepcopy
(
default_lang
),
'
en
'
:
copy
.
deepcopy
(
request_lang
)})
self
.
assertEqual
(
app
.
lang
(
'
en
'
)[
'
overwritten
'
],
request_lang
[
'
overwritten
'
])
self
.
assertEqual
(
app
.
lang
(
'
en
'
)[
'
overwritten
'
],
request_lang
[
'
overwritten
'
])
self
.
assertEqual
(
app
.
lang
(
'
en
'
)[
'
fallback
'
],
default_lang
[
'
fallback
'
])
self
.
assertEqual
(
app
.
lang
(
'
en
'
)[
'
fallback
'
],
default_lang
[
'
fallback
'
])
self
.
assertEqual
(
app
.
lang
(
'
fr
'
)[
'
overwritten
'
],
default_lang
[
'
overwritten
'
])
self
.
assertEqual
(
app
.
lang
(
'
fr
'
)[
'
overwritten
'
],
default_lang
[
'
overwritten
'
])
...
@@ -102,36 +104,44 @@ class TestSAMSApp(unittest.TestCase):
...
@@ -102,36 +104,44 @@ class TestSAMSApp(unittest.TestCase):
manifest
=
{
manifest
=
{
'
default_language
'
:
'
de
'
,
'
default_language
'
:
'
de
'
,
'
menu
'
:[
'
menu
'
:[
{
'
url
'
:
expected_urls
[
0
],
'
name_string
'
:
name_strings
[
0
]},
{
'
url
'
:
copy
.
copy
(
expected_urls
[
0
]),
{
'
url
'
:
expected_urls
[
1
],
'
name_string
'
:
name_strings
[
1
],
'
name_string
'
:
copy
.
copy
(
name_strings
[
0
])},
{
'
url
'
:
copy
.
copy
(
expected_urls
[
1
]),
'
name_string
'
:
copy
.
copy
(
name_strings
[
1
]),
'
menu
'
:[
'
menu
'
:[
{
'
url
'
:
expected_urls
[
2
],
'
name_string
'
:
name_strings
[
2
]},
{
'
url
'
:
copy
.
copy
(
expected_urls
[
2
]),
{
'
url
'
:
expected_urls
[
3
],
'
name_string
'
:
name_strings
[
3
]}
'
name_string
'
:
copy
.
copy
(
name_strings
[
2
])},
{
'
url
'
:
copy
.
copy
(
expected_urls
[
3
]),
'
name_string
'
:
copy
.
copy
(
name_strings
[
3
])}
]}
]}
]
]
}
}
default_lang
=
{
langDicts
=
{
name_strings
[
0
]:
'
1 überschrieben
'
,
'
de
'
:
{
name_strings
[
1
]:
'
2 verwendet
'
,
name_strings
[
0
]:
'
1 überschrieben
'
,
name_strings
[
2
]:
'
2.1 verwendet
'
,
name_strings
[
1
]:
'
2 verwendet
'
,
name_strings
[
3
]:
'
2.2 überschrieben
'
name_strings
[
2
]:
'
2.1 verwendet
'
,
}
name_strings
[
3
]:
'
2.2 überschrieben
'
request_lang
=
{
},
name_strings
[
0
]:
'
1 used
'
,
'
en
'
:
{
name_strings
[
3
]:
'
2.2 used
'
name_strings
[
0
]:
'
1 used
'
,
name_strings
[
3
]:
'
2.2 used
'
}
}
}
app
=
SAMSApp
(
name
=
'
test
'
,
manifest
=
manifest
app
=
SAMSApp
(
name
=
'
test
'
,
manifest
=
manifest
,
langDict
=
{
'
de
'
:
default_lang
,
'
en
'
:
request_lang
}
)
,
langDict
=
copy
.
deepcopy
(
langDicts
)
)
menu
=
app
.
menu
(
'
en
'
)
menu
=
app
.
menu
(
'
en
'
)
self
.
assertEqual
(
menu
[
0
][
'
url
'
],
expected_urls
[
0
])
self
.
assertEqual
(
menu
[
0
][
'
url
'
],
expected_urls
[
0
])
self
.
assertEqual
(
menu
[
1
][
'
url
'
],
expected_urls
[
1
])
self
.
assertEqual
(
menu
[
1
][
'
url
'
],
expected_urls
[
1
])
self
.
assertEqual
(
menu
[
1
][
'
menu
'
][
0
][
'
url
'
],
expected_urls
[
2
])
self
.
assertEqual
(
menu
[
1
][
'
menu
'
][
0
][
'
url
'
],
expected_urls
[
2
])
self
.
assertEqual
(
menu
[
1
][
'
menu
'
][
1
][
'
url
'
],
expected_urls
[
3
])
self
.
assertEqual
(
menu
[
1
][
'
menu
'
][
1
][
'
url
'
],
expected_urls
[
3
])
self
.
assertEqual
(
menu
[
0
][
'
name
'
],
request_lang
[
name_strings
[
0
]])
self
.
assertEqual
(
menu
[
1
][
'
name
'
],
langDicts
[
'
de
'
][
name_strings
[
1
]])
self
.
assertEqual
(
menu
[
1
][
'
name
'
],
default_lang
[
name_strings
[
1
]])
self
.
assertEqual
(
menu
[
0
][
'
name
'
],
langDicts
[
'
en
'
][
name_strings
[
0
]])
self
.
assertEqual
(
menu
[
1
][
'
menu
'
][
0
][
'
name
'
],
default_lang
[
name_strings
[
2
]])
self
.
assertEqual
(
menu
[
1
][
'
menu
'
][
1
][
'
name
'
],
langDicts
[
'
en
'
][
name_strings
[
3
]])
self
.
assertEqual
(
menu
[
1
][
'
menu
'
][
1
][
'
name
'
],
request_lang
[
name_strings
[
3
]])
self
.
assertEqual
(
menu
[
1
][
'
menu
'
][
0
][
'
name
'
],
langDicts
[
'
de
'
][
name_strings
[
2
]])
menu
=
app
.
menu
(
'
de
'
)
self
.
assertEqual
(
menu
[
0
][
'
name
'
],
langDicts
[
'
de
'
][
name_strings
[
0
]])
self
.
assertEqual
(
menu
[
1
][
'
menu
'
][
1
][
'
name
'
],
langDicts
[
'
de
'
][
name_strings
[
3
]])
def
test_app_menu_prefix
(
self
):
def
test_app_menu_prefix
(
self
):
"""
app.menu(lanCode, prefix) returns the app menu with prefixed urls
"""
"""
app.menu(lanCode, prefix) returns the app menu with prefixed urls
"""
manifest
=
{
manifest
=
{
...
...
This diff is collapsed.
Click to expand it.
test/test_sams_hub.py
+
50
−
37
View file @
d101508e
...
@@ -4,6 +4,7 @@ from sams_classes.exceptions import AppNotExist
...
@@ -4,6 +4,7 @@ from sams_classes.exceptions import AppNotExist
from
flask
import
Flask
,
Blueprint
from
flask
import
Flask
,
Blueprint
import
sys
,
time
import
sys
,
time
from
helper_classes
import
FlaskInThread
from
helper_classes
import
FlaskInThread
import
copy
def
eprint
(
*
args
,
**
kwargs
):
def
eprint
(
*
args
,
**
kwargs
):
print
(
*
args
,
file
=
sys
.
stderr
,
**
kwargs
)
print
(
*
args
,
file
=
sys
.
stderr
,
**
kwargs
)
...
@@ -219,34 +220,46 @@ class CaseMinimalSAMSHub(unittest.TestCase):
...
@@ -219,34 +220,46 @@ class CaseMinimalSAMSHub(unittest.TestCase):
def
test_hub_default_language_used
(
self
):
def
test_hub_default_language_used
(
self
):
"""
The hub default_language is prefered instead of app default_language
"""
"""
The hub default_language is prefered instead of app default_language
"""
wrong
=
'
Hello world!
'
langDicts
=
{
expected
=
'
Hallo Welt!
'
'
de
'
:
{
'
hello
'
:
'
Hallo Welt!
'
},
self
.
hub
.
addApp
(
'
en
'
:
{
'
hello
'
:
'
Hello world!
'
}
SAMSApp
(
}
name
=
'
test
'
for
langCode
,
langDict
in
langDicts
.
items
():
,
manifest
=
{
with
self
.
subTest
(
langCode
):
'
default_language
'
:
'
en
'
hub
=
SAMSHub
(
name
=
'
test
'
,
config
=
{
'
default_language
'
:
'
de
'
})
,
'
views
'
:[
hub
.
addApp
(
{
'
url
'
:
'
hello
'
SAMSApp
(
,
'
function
'
:
'
views.hello
'
}
name
=
'
test
'
]
,
manifest
=
{
}
'
default_language
'
:
langCode
,
langDict
=
{
,
'
views
'
:[
'
de
'
:
{
'
hello
'
:
expected
}
{
'
url
'
:
'
hello
'
,
'
en
'
:
{
'
hello
'
:
wrong
}
,
'
function
'
:
'
views.hello
'
}
}
]
)
}
)
,
langDict
=
copy
.
deepcopy
(
langDicts
)
self
.
hub
.
flaskApp
.
config
[
'
DEBUG
'
]
=
True
)
client
=
self
.
hub
.
flaskApp
.
test_client
(
self
)
)
response
=
client
.
get
(
'
/test/hello
'
)
hub
.
flaskApp
.
config
[
'
DEBUG
'
]
=
True
self
.
assertIs
(
response
.
status_code
,
200
)
with
hub
.
flaskApp
.
test_client
(
self
)
as
client
:
self
.
assertEquals
(
response
.
data
.
decode
(
'
utf-8
'
),
expected
)
response
=
client
.
get
(
'
/test/hello
'
)
self
.
assertIs
(
response
.
status_code
,
200
)
self
.
assertEquals
(
response
.
data
.
decode
(
'
utf-8
'
),
langDicts
[
'
de
'
][
'
hello
'
])
def
test_session_language_used
(
self
):
def
test_session_language_used
(
self
):
"""
use Session[
'
language
'
] if possible
"""
"""
use Session[
'
language
'
] if possible
"""
expected
=
'
Bonjour!
'
langDict
=
{
self
.
hub
.
addApp
(
'
de
'
:
{
'
hello
'
:
'
Hallo Welt!
'
},
'
en
'
:
{
'
hello
'
:
'
Hello world!
'
},
'
fr
'
:
{
'
hello
'
:
'
Bonjour tout le monde!
'
}
}
sessionLangs
=
[
'
de
'
,
'
en
'
,
'
fr
'
]
hub
=
SAMSHub
(
name
=
'
test
'
,
config
=
{
'
default_language
'
:
'
de
'
}
)
hub
.
addApp
(
SAMSApp
(
SAMSApp
(
name
=
'
test
'
name
=
'
test
'
,
manifest
=
{
,
manifest
=
{
...
@@ -256,19 +269,19 @@ class CaseMinimalSAMSHub(unittest.TestCase):
...
@@ -256,19 +269,19 @@ class CaseMinimalSAMSHub(unittest.TestCase):
,
'
function
'
:
'
views.hello
'
}
,
'
function
'
:
'
views.hello
'
}
]
]
}
}
,
langDict
=
{
,
langDict
=
copy
.
deepcopy
(
langDict
)
'
de
'
:
{
'
hello
'
:
'
falsch
'
}
,
'
en
'
:
{
'
hello
'
:
'
wrong
'
}
,
'
fr
'
:
{
'
hello
'
:
expected
}
}
)
)
)
)
self
.
hub
.
flaskApp
.
config
[
'
DEBUG
'
]
=
True
for
sessionLang
in
sessionLangs
:
with
self
.
hub
.
flaskApp
.
test_client
(
self
)
as
client
:
eprint
(
langDict
)
with
client
.
session_transaction
()
as
session_simulation
:
with
self
.
subTest
(
sessionLang
):
session_simulation
[
'
language
'
]
=
'
fr
'
hub
.
flaskApp
.
config
[
'
DEBUG
'
]
=
True
response
=
client
.
get
(
'
/test/hello
'
)
with
hub
.
flaskApp
.
test_client
(
self
)
as
client
:
self
.
assertIs
(
response
.
status_code
,
200
)
with
client
.
session_transaction
()
as
session_simulation
:
self
.
assertEquals
(
response
.
data
.
decode
(
'
utf-8
'
),
expected
)
session_simulation
[
'
language
'
]
=
sessionLang
response
=
client
.
get
(
'
/test/hello
'
)
self
.
assertIs
(
response
.
status_code
,
200
)
self
.
assertEquals
(
response
.
data
.
decode
(
'
utf-8
'
),
langDict
[
sessionLang
][
'
hello
'
])
if
__name__
==
'
__main__
'
:
unittest
.
main
()
if
__name__
==
'
__main__
'
:
unittest
.
main
()
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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