class TestDmCryptParser(CiTestCase):
    def setUp(self):
        super(TestDmCryptParser, self).setUp()
        self.probe_data = _get_data('probert_storage_dmcrypt.json')
        self.dmcrypt = DmcryptParser(self.probe_data)

    def test_dmcrypt_parser(self):
        """ DmcryptParser 'class_data' on instance matches input. """
        self.assertDictEqual(self.probe_data['dmcrypt'],
                             self.dmcrypt.class_data)

    def test_dmcrypt_asdict(self):
        """ DmcryptParser converts known dmcrypt_data to expected dict. """
        devname = "dmcrypt0"
        expected_dict = {
            'type': 'dm_crypt',
            'id': 'dmcrypt-dmcrypt0',
            'dm_name': devname,
            'key': '',
            'volume': 'lvm-partition-lv3',
        }
        dmcrypt_data = self.dmcrypt.class_data[devname]
        self.assertDictEqual(expected_dict, self.dmcrypt.asdict(dmcrypt_data))

    @skipUnlessJsonSchema()
    def test_dmcrypt_parser_parses_all_crypt_devs(self):
        """ DmcryptParser returns expected dicts for known raid probe data."""
        configs, errors = self.dmcrypt.parse()
        self.assertEqual(1, len(configs))
        self.assertEqual(0, len(errors))
 def setUp(self):
     super(TestDmCryptParser, self).setUp()
     self.probe_data = _get_data('probert_storage_dmcrypt.json')
     self.dmcrypt = DmcryptParser(self.probe_data)