Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
inventory-provider
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
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
geant-swd
dashboardv3
inventory-provider
Merge requests
!37
Feature/dboard3 921
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
Feature/dboard3 921
feature/DBOARD3-921
into
develop
Overview
1
Commits
14
Pipelines
0
Changes
1
All threads resolved!
Hide all comments
Merged
Neda Moeini
requested to merge
feature/DBOARD3-921
into
develop
11 months ago
Overview
1
Commits
14
Pipelines
0
Changes
1
All threads resolved!
Hide all comments
Expand
0
0
Merge request reports
Viewing commit
f3273f5b
Show latest version
1 file
+
81
−
0
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
f3273f5b
Added unit tests for gap.py
· f3273f5b
Neda Moeini
authored
11 months ago
test/test_gap.py
0 → 100644
+
81
−
0
Options
from
unittest.mock
import
patch
,
MagicMock
from
inventory_provider
import
gap
def
test_get_token_endpoint
():
with
patch
(
'
inventory_provider.gap.requests.get
'
)
as
mock_get
:
mock_response
=
MagicMock
()
mock_response
.
json
.
return_value
=
{
'
token_endpoint
'
:
'
http://example.com/token
'
}
mock_response
.
raise_for_status
=
MagicMock
()
mock_get
.
return_value
=
mock_response
discovery_endpoint_url
=
'
http://example.com/aai
'
token_endpoint
=
gap
.
get_token_endpoint
(
discovery_endpoint_url
)
assert
token_endpoint
==
'
http://example.com/token
'
def
test_get_token
():
with
patch
(
'
inventory_provider.gap.requests.post
'
)
as
mock_post
,
patch
(
'
inventory_provider.gap.get_token_endpoint
'
)
as
mock_get_token_endpoint
:
mock_get_token_endpoint
.
return_value
=
'
http://example.com/token
'
mock_response
=
MagicMock
()
mock_response
.
json
.
return_value
=
{
'
access_token
'
:
'
test_token
'
}
mock_response
.
raise_for_status
=
MagicMock
()
mock_post
.
return_value
=
mock_response
aai_config
=
{
'
discovery_endpoint_url
'
:
'
http://example.com/aai
'
,
'
inventory_provider
'
:
{
'
client_id
'
:
'
test_id
'
,
'
secret
'
:
'
test_secret
'
}
}
token
=
gap
.
get_token
(
aai_config
)
assert
token
==
'
test_token
'
def
test_extract_router_info
():
device
=
{
'
product
'
:
{
'
tag
'
:
'
RTR
'
},
'
subscriptionId
'
:
'
test_subscription_id
'
}
with
patch
(
'
inventory_provider.gap.make_request
'
)
as
mock_make_request
:
mock_response
=
{
'
data
'
:
{
'
subscriptions
'
:
{
'
page
'
:
[{
'
productBlockInstances
'
:
[{
'
productBlockInstanceValues
'
:
[
{
'
field
'
:
'
routerFqdn
'
,
'
value
'
:
'
test_fqdn
'
},
{
'
field
'
:
'
vendor
'
,
'
value
'
:
'
test_vendor
'
}
]
}]
}]
}
}
}
mock_make_request
.
return_value
=
mock_response
router_info
=
gap
.
extract_router_info
(
device
)
assert
router_info
==
{
'
fqdn
'
:
'
test_fqdn
'
,
'
vendor
'
:
'
test_vendor
'
}
def
test_load_routers_from_orchestrator
():
with
patch
(
'
inventory_provider.gap.make_request
'
)
as
mock_make_request
,
patch
(
'
inventory_provider.gap.extract_router_info
'
)
as
mock_extract_router_info
:
mock_response
=
{
'
data
'
:
{
'
subscriptions
'
:
{
'
page
'
:
[
{
'
subscriptionId
'
:
'
1
'
,
'
product
'
:
{
'
tag
'
:
'
RTR
'
}},
{
'
subscriptionId
'
:
'
2
'
,
'
product
'
:
{
'
tag
'
:
'
OFFICE_ROUTER
'
}}
]
}
}
}
mock_make_request
.
return_value
=
mock_response
mock_extract_router_info
.
side_effect
=
[
{
'
fqdn
'
:
'
fqdn1
'
,
'
vendor
'
:
'
vendor1
'
},
{
'
fqdn
'
:
'
fqdn2
'
,
'
vendor
'
:
'
vendor2
'
}
]
routers
=
gap
.
load_routers_from_orchestrator
()
assert
routers
==
{
'
fqdn1
'
:
'
vendor1
'
,
'
fqdn2
'
:
'
vendor2
'
}
Loading