Merge "Add tests for filters and url2list"

This commit is contained in:
Jenkins 2016-12-03 10:06:50 +00:00 committed by Gerrit Code Review
commit 05e38cf039
3 changed files with 46 additions and 12 deletions
valence

@ -55,12 +55,11 @@ def send_request(resource, method="GET", **kwargs):
def filter_chassis(jsonContent, filterCondition):
returnJSONObj = {}
returnMembers = []
parsed = json.loads(jsonContent)
members = parsed['Members']
members = jsonContent['Members']
for member in members:
resource = member['@odata.id']
resp = send_request(resource)
memberJsonObj = json.loads(resp.json())
memberJsonObj = resp.json()
chassisType = memberJsonObj['ChassisType']
if chassisType == filterCondition:
returnMembers.append(member)
@ -96,13 +95,15 @@ def generic_filter(jsonContent, filterConditions):
def racks():
jsonContent = send_request('Chassis')
resp = send_request('Chassis')
jsonContent = resp.json()
racks = filter_chassis(jsonContent, 'Rack')
return json.dumps(racks)
def pods():
jsonContent = send_request('Chassis')
resp = send_request('Chassis')
jsonContent = resp.json()
pods = filter_chassis(jsonContent, 'Pod')
return json.dumps(pods)

@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
import json
def mock_request_get(json_data, status_code):
@ -21,7 +19,7 @@ def mock_request_get(json_data, status_code):
self.status_code = status_code
def json(self):
return json.dumps(self.json_data)
return self.json_data
return MockResponse(json_data, status_code)

@ -45,13 +45,48 @@ class TestRedfish(TestCase):
mock_request.side_effect = [first_request,
second_request,
third_request]
chassis = ('{"Members":'
'[{"@odata.id": "1"},'
'{"@odata.id": "2"},'
'{"@odata.id": "3"}]}')
chassis = {"Members":
[{"@odata.id": "1"},
{"@odata.id": "2"},
{"@odata.id": "3"}]}
expected = {'Members': [
{u'@odata.id': u'2'},
{u'@odata.id': u'3'}
], 'Members@odata.count': 2}
result = redfish.filter_chassis(chassis, "Rack")
self.assertEqual(expected, result)
def test_generic_filter(self):
filter_condition = {"Id": "1"}
json_content_pass = {"Name": "Pass",
"Id": "1"}
result = redfish.generic_filter(json_content_pass,
filter_condition)
self.assertTrue(result)
json_content_fail = {"Name": "Fail",
"Id": "2"}
result = redfish.generic_filter(json_content_fail,
filter_condition)
self.assertFalse(result)
json_content_fail_2 = {"Name": "Fail2"}
result = redfish.generic_filter(json_content_fail_2,
filter_condition)
self.assertFalse(result)
@mock.patch('valence.redfish.redfish.send_request')
def test_urls2list_no_members(self, mock_request):
resp = {"Name": "NoMembers", "Id": 1}
mock_request.return_value = fakes.mock_request_get(resp, "200")
result = redfish.urls2list('/redfish/v1/test')
self.assertEqual([], result)
@mock.patch('valence.redfish.redfish.send_request')
def test_urls2list_members(self, mock_request):
resp = {"Name": "Members", "Id": 1,
"Members":
[{"@odata.id": "/redfish/v1/Member/1"},
{"@odata.id": "/redfish/v1/Member/2"}]}
mock_request.return_value = fakes.mock_request_get(resp, "200")
expected = ["/redfish/v1/Member/1", "/redfish/v1/Member/2"]
result = redfish.urls2list('/redfish/v1/test')
self.assertEqual(expected, result)