Skip to content

Commit

Permalink
Merge pull request #389 from grafuls/development
Browse files Browse the repository at this point in the history
fix: non blocking or failing on --host-list
  • Loading branch information
sadsfae authored Oct 31, 2023
2 parents 5fd9977 + d055a83 commit 3a7cb0a
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 4 deletions.
1 change: 1 addition & 0 deletions .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v2
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.xml
env_vars: PYTHON
flags: unittests
Expand Down
6 changes: 5 additions & 1 deletion src/badfish/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -649,7 +649,11 @@ async def get_power_consumed_watts(self):
data = json.loads(raw.strip())
except ValueError:
raise BadfishException("Power value outside operating range.")
self.logger.info(f"Current watts consumed: {data['PowerControl'][0]['PowerConsumedWatts']}")
try:
cwc = data['PowerControl'][0]['PowerConsumedWatts']
except IndexError:
cwc = "N/A. Try to `--racreset`."
self.logger.info(f"Current watts consumed: {cwc}")
return

async def change_boot(self, host_type, interfaces_path, pxe=False):
Expand Down
2 changes: 2 additions & 0 deletions tests/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,9 @@ def render_device_dict(index, device):
)
# test_power_consumed_watts
POWER_CONSUMED_RESP = '{"PowerControl":[{"PowerConsumedWatts":"69"}]}'
NO_POWER = '{"PowerControl":[]}'
RESPONSE_POWER_CONSUMED_OK = '- INFO - Current watts consumed: 69\n'
RESPONSE_NO_POWER_CONSUMED = '- INFO - Current watts consumed: N/A. Try to `--racreset`.\n'
RESPONSE_POWER_CONSUMED_404 = '- ERROR - Operation not supported by vendor.\n'
RESPONSE_POWER_CONSUMED_VAL_ERR = '- ERROR - Power value outside operating range.\n'
# test_reset_%s
Expand Down
17 changes: 14 additions & 3 deletions tests/test_power_consumed_watts.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from asynctest import patch
from tests.config import (
INIT_RESP, POWER_CONSUMED_RESP, RESPONSE_POWER_CONSUMED_OK, RESPONSE_POWER_CONSUMED_404,
INIT_RESP, NO_POWER, POWER_CONSUMED_RESP, RESPONSE_NO_POWER_CONSUMED, RESPONSE_POWER_CONSUMED_OK, RESPONSE_POWER_CONSUMED_404,
RESPONSE_POWER_CONSUMED_VAL_ERR,

)
Expand All @@ -25,19 +25,30 @@ def test_power_consumed(self, mock_get, mock_post, mock_delete):
@patch("aiohttp.ClientSession.get")
def test_power_consumed_404(self, mock_get, mock_post, mock_delete):
responses = INIT_RESP + [POWER_CONSUMED_RESP]
self.set_mock_response(mock_get,[200,200,200,200,200,404], responses)
self.set_mock_response(mock_get, [200,200,200,200,200,404], responses)
self.set_mock_response(mock_post, 200, "OK", True)
self.set_mock_response(mock_delete, 200, "OK")
_, err = self.badfish_call()
assert err == RESPONSE_POWER_CONSUMED_404

@patch("aiohttp.ClientSession.delete")
@patch("aiohttp.ClientSession.post")
@patch("aiohttp.ClientSession.get")
def test_no_power(self, mock_get, mock_post, mock_delete):
responses = INIT_RESP + [NO_POWER]
self.set_mock_response(mock_get, 200, responses)
self.set_mock_response(mock_post, 200, "OK", True)
self.set_mock_response(mock_delete, 200, "OK")
_, err = self.badfish_call()
assert err == RESPONSE_NO_POWER_CONSUMED

@patch("aiohttp.ClientSession.delete")
@patch("aiohttp.ClientSession.post")
@patch("aiohttp.ClientSession.get")
def test_power_consumed_value_error(self, mock_get, mock_post, mock_delete):
responses_add = [""]
responses = INIT_RESP + responses_add
self.set_mock_response(mock_get,200, responses)
self.set_mock_response(mock_get, 200, responses)
self.set_mock_response(mock_post, 200, "OK", True)
self.set_mock_response(mock_delete, 200, "OK")
_, err = self.badfish_call()
Expand Down

0 comments on commit 3a7cb0a

Please sign in to comment.