Page Menu
Home
VyOS Platform
Search
Configure Global Search
Log In
Files
F118305658
test_op_mode.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
test_op_mode.py
View Options
#!/usr/bin/env python3
#
# Copyright (C) 2022 VyOS maintainers and contributors
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 or later as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# 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
unittest
import
TestCase
import
vyos.opmode
class
TestVyOSOpMode
(
TestCase
):
def
test_field_name_normalization
(
self
):
from
vyos.opmode
import
_normalize_field_name
self
.
assertEqual
(
_normalize_field_name
(
" foo bar "
),
"foo_bar"
)
self
.
assertEqual
(
_normalize_field_name
(
"foo-bar"
),
"foo_bar"
)
self
.
assertEqual
(
_normalize_field_name
(
"foo (bar) baz"
),
"foo_bar_baz"
)
self
.
assertEqual
(
_normalize_field_name
(
"load%"
),
"load_percentage"
)
def
test_dict_fields_normalization_non_unique
(
self
):
from
vyos.opmode
import
_normalize_field_names
# Space and dot are both replaced by an underscore,
# so dicts like this cannor be normalized uniquely
data
=
{
"foo bar"
:
True
,
"foo.bar"
:
False
}
with
self
.
assertRaises
(
vyos
.
opmode
.
InternalError
):
_normalize_field_names
(
data
)
def
test_dict_fields_normalization_simple_dict
(
self
):
from
vyos.opmode
import
_normalize_field_names
data
=
{
"foo bar"
:
True
,
"Bar-Baz"
:
False
}
self
.
assertEqual
(
_normalize_field_names
(
data
),
{
"foo_bar"
:
True
,
"bar_baz"
:
False
})
def
test_dict_fields_normalization_nested_dict
(
self
):
from
vyos.opmode
import
_normalize_field_names
data
=
{
"foo bar"
:
True
,
"bar-baz"
:
{
"baz-quux"
:
{
"quux-xyzzy"
:
False
}}}
self
.
assertEqual
(
_normalize_field_names
(
data
),
{
"foo_bar"
:
True
,
"bar_baz"
:
{
"baz_quux"
:
{
"quux_xyzzy"
:
False
}}})
def
test_dict_fields_normalization_mixed
(
self
):
from
vyos.opmode
import
_normalize_field_names
data
=
[{
"foo bar"
:
True
,
"bar-baz"
:
[{
"baz-quux"
:
{
"quux-xyzzy"
:
[
False
]}}]}]
self
.
assertEqual
(
_normalize_field_names
(
data
),
[{
"foo_bar"
:
True
,
"bar_baz"
:
[{
"baz_quux"
:
{
"quux_xyzzy"
:
[
False
]}}]}])
def
test_dict_fields_normalization_primitive
(
self
):
from
vyos.opmode
import
_normalize_field_names
data
=
[
1
,
False
,
"foo"
]
self
.
assertEqual
(
_normalize_field_names
(
data
),
[
1
,
False
,
"foo"
])
File Metadata
Details
Attached
Mime Type
text/x-script.python
Expires
Sat, Oct 17, 12:06 AM (1 d, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4351411
Default Alt Text
test_op_mode.py (2 KB)
Attached To
Mode
rVYOSONEX vyos-1x
Attached
Detach File
Event Timeline
Log In to Comment