def test_devices_with_invalid_config(self):
     """Charm has empty devices configuration."""
     linter = Mock()
     charm = {'devices': 'invalid devices config'}
     validate_devices(charm, linter)
     self.assertEqual(linter.err.call_count, 1)
     linter.err.assert_has_calls([
         call('devices: must be a dictionary of device definitions'),
     ],
                                 any_order=True)
 def test_devices_with_invalid_config(self):
     """Charm has empty devices configuration."""
     linter = Mock()
     charm = {
         'devices': 'invalid devices config'
     }
     validate_devices(charm, linter)
     self.assertEqual(linter.err.call_count, 1)
     linter.err.assert_has_calls([
         call('devices: must be a dictionary of device definitions'),
     ], any_order=True)
Beispiel #3
0
 def test_minimal_devices_config(self):
     """Charm has the minimum allowed devices configuration."""
     linter = Mock()
     charm = {
         'devices': {
             'bitcoinminer': {
                 'type': 'nvidia.com/gpu',
                 'count': 1
             }
         }
     }
     validate_devices(charm, linter)
     self.assertFalse(linter.err.called)
Beispiel #4
0
 def test_devices_unknown_keys(self):
     """Charm has devices with illegal keys."""
     linter = Mock()
     charm = {
         'devices': {
             'bitcoinminer': {
                 'type': 'nvidia.com/gpu',
                 'count': 1,
                 'unknown': True
             }
         }
     }
     validate_devices(charm, linter)
     self.assertEqual(linter.err.call_count, 1)
     linter.err.assert_has_calls([
         call('devices.bitcoinminer: Unrecognized keys in mapping: "{\'unknown\': True}"'),
     ], any_order=True)
 def test_devices_proof_extensions(self):
     """Charm has devices with proof extensions."""
     linter = Mock()
     charm = {
         'devices': {
             'bitcoinminer': {
                 'type': 'nvidia.com/gpu',
                 'count': 1,
                 'unknown': True
             }
         }
     }
     extensions = [{
         'name': 'unknown',
         'type': 'Boolean',
     }]
     validate_devices(charm, linter, extensions)
     self.assertEqual(linter.err.call_args_list, [])
 def test_devices_proof_extensions(self):
     """Charm has devices with proof extensions."""
     linter = Mock()
     charm = {
         'devices': {
             'bitcoinminer': {
                 'type': 'nvidia.com/gpu',
                 'count': 1,
                 'unknown': True
             }
         }
     }
     extensions = [
         {
             'name': 'unknown',
             'type': 'Boolean',
         }
     ]
     validate_devices(charm, linter, extensions)
     self.assertEqual(linter.err.call_args_list, [])
Beispiel #7
0
 def test_devices_with_invalid_values(self):
     """Charm has devices with invalid values."""
     linter = Mock()
     charm = {
         'devices': {
             'bitcoinminer': {
                 'type': 'nvidia.com/gpu',
                 'count': 'non number'
             },
             'bitcoinminer1': {
                 'count': 1
             }
         }
     }
     validate_devices(charm, linter)
     self.assertEqual(linter.err.call_count, 2)
     linter.err.assert_has_calls([
         call('devices.bitcoinminer.count: "non number" is not a number'),
         call('devices.bitcoinminer1.type: Required'),
     ], any_order=True)