summaryrefslogtreecommitdiffstats
path: root/conductor/conductor/tests/unit/data/plugins/inventory_provider/test_candidates.py
blob: 8d9bcc51f032d2c57bb7daea29e5391dfb041b25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#
# -------------------------------------------------------------------------
#   Copyright (C) 2020 Wipro Limited.
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
#
# -------------------------------------------------------------------------
#

import unittest
import uuid

from conductor.data.plugins.inventory_provider.candidates.candidate import Candidate
from conductor.data.plugins.inventory_provider.candidates.slice_profiles_candidate import SliceProfilesCandidate

class TestCandidates(unittest.TestCase):

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def test_slice_profiles_candidate(self):
        id = str(uuid.uuid4())
        expected_candidate = {
                                "candidate_id": id,
                                "core_latency": 15,
                                "core_reliability": 99.99,
                                "cost": 1.0,
                                "coverage_area_ta_list": "City: Chennai",
                                "inventory_provider": "generator",
                                "inventory_type": "slice_profiles",
                                "latency": 25,
                                "ran_coverage_area_ta_list": "City: Chennai",
                                "ran_latency": 10,
                                "ran_reliability": 99.99,
                                "reliability": 99.99,
                                "uniqueness": "true",
                                "creation_cost": 0.9
                            }
        info = Candidate.build_candidate_info("generator", "slice_profiles", 1.0, "true", id)
        subnet_requirements = {"core": {"latency": 15, "reliability": 99.99},
                               "ran": {"latency": 10, "reliability": 99.99, "coverage_area_ta_list": "City: Chennai"}
                               }

        candidate = SliceProfilesCandidate(info=info, subnet_requirements=subnet_requirements,
                                           default_fields={"creation_cost": 0.9})

        self.assertEqual(expected_candidate, candidate.convert_nested_dict_to_dict())