class TestRaidParser(CiTestCase):
    def setUp(self):
        super(TestRaidParser, self).setUp()
        self.probe_data = _get_data('probert_storage_mdadm_bcache.json')
        self.raidp = RaidParser(self.probe_data)

    def test_raid_parser(self):
        """ RaidParser 'class_data' on instance matches input. """
        self.assertDictEqual(self.probe_data['raid'], self.raidp.class_data)

    def test_raid_asdict(self):
        """ RaidParser converts known raid_data to expected dict. """
        devname = "/dev/md0"
        expected_dict = {
            'type': 'raid',
            'id': 'raid-md0',
            'name': 'md0',
            'raidlevel': 'raid5',
            'devices': ['disk-vde', 'disk-vdf', 'disk-vdg'],
            'spare_devices': [],
        }
        raid_data = self.raidp.class_data[devname]
        self.assertDictEqual(expected_dict, self.raidp.asdict(raid_data))

    @skipUnlessJsonSchema()
    def test_raid_parser_parses_all_lvs_vgs(self):
        """ RaidParser returns expected dicts for known raid probe data."""
        configs, errors = self.raidp.parse()
        self.assertEqual(1, len(configs))
        self.assertEqual(0, len(errors))
 def setUp(self):
     super(TestRaidParser, self).setUp()
     self.probe_data = _get_data('probert_storage_mdadm_bcache.json')
     self.raidp = RaidParser(self.probe_data)