def test_set_value_unicode(self): ''' Test - set a registry plain text subkey name to a unicode string value ''' vname = 'TestUniccodeString' subkey = 'Software\\SaltStackTest' test1_success = False test2_success = False test1_success = win_mod_reg.set_value( 'HKEY_LOCAL_MACHINE', subkey, vname, UNICODETEST_WITH_SIGNS ) # Now use _winreg direct to see if it worked as expected if test1_success: handle = _winreg.OpenKey( _winreg.HKEY_LOCAL_MACHINE, subkey, 0, _winreg.KEY_ALL_ACCESS ) (current_vdata, dummy_current_vtype) = _winreg.QueryValueEx(handle, vname) _winreg.CloseKey(handle) test2_success = (current_vdata == UNICODETEST_WITH_SIGNS) self.assertTrue(test1_success and test2_success)
def test_set_value_unicode_key(self): ''' Test - set a registry Unicode subkey name with unicode characters within to a integer ''' test_success = win_mod_reg.set_value( 'HKEY_LOCAL_MACHINE', 'Software\\SaltStackTest', UNICODE_TEST_KEY, TIMEINT, 'REG_DWORD' ) self.assertTrue(test_success)
def test_delete_value(self): ''' Test the delete_value function ''' try: self.assertTrue( reg.set_value(hive='HKLM', key=FAKE_KEY, vname='fake_name', vdata='fake_data')) self.assertTrue( reg.delete_value(hive='HKLM', key=FAKE_KEY, vname='fake_name')) finally: reg.delete_key_recursive(hive='HKLM', key=FAKE_KEY)
def test_delete_value_unicode_vname(self): """ Test the delete_value function on a unicode vname """ try: self.assertTrue( reg.set_value(hive="HKLM", key=FAKE_KEY, vname=UNICODE_KEY, vdata="junk data")) self.assertTrue( reg.delete_value(hive="HKLM", key=FAKE_KEY, vname=UNICODE_KEY)) finally: reg.delete_key_recursive(hive="HKLM", key=FAKE_KEY)
def test_delete_value(self): """ Test the delete_value function """ try: self.assertTrue( reg.set_value(hive="HKLM", key=FAKE_KEY, vname="fake_name", vdata="fake_data")) self.assertTrue( reg.delete_value(hive="HKLM", key=FAKE_KEY, vname="fake_name")) finally: reg.delete_key_recursive(hive="HKLM", key=FAKE_KEY)
def test_set_value_open_create_failure(self): """ Test the set_value function when there is a problem opening/creating the key """ mock_error = MagicMock( side_effect=win32api.error(123, "RegCreateKeyEx", "Unknown error") ) with patch("salt.utils.win_reg.win32api.RegCreateKeyEx", mock_error): self.assertFalse( reg.set_value( hive="HKLM", key=FAKE_KEY, vname="fake_name", vdata="fake_data" ) )
def test_delete_value_unicode_vname(self): ''' Test the delete_value function on a unicode vname ''' try: self.assertTrue( reg.set_value(hive='HKLM', key=FAKE_KEY, vname=UNICODE_KEY, vdata='junk data')) self.assertTrue( reg.delete_value(hive='HKLM', key=FAKE_KEY, vname=UNICODE_KEY)) finally: reg.delete_key_recursive(hive='HKLM', key=FAKE_KEY)
def test_delete_value_unicode_key(self): ''' Test the delete_value function on a unicode key ''' try: self.assertTrue( reg.set_value(hive='HKLM', key='\\'.join([FAKE_KEY, UNICODE_KEY]), vname='fake_name', vdata='junk data')) self.assertTrue( reg.delete_value(hive='HKLM', key='\\'.join([FAKE_KEY, UNICODE_KEY]), vname='fake_name')) finally: reg.delete_key_recursive(hive='HKLM', key=FAKE_KEY)
def test_delete_key_recursive(self): """ Test the delete_key_recursive function """ try: self.assertTrue( reg.set_value( hive="HKLM", key=FAKE_KEY, vname="fake_name", vdata="fake_value" ) ) expected = {"Deleted": ["\\".join(["HKLM", FAKE_KEY])], "Failed": []} self.assertDictEqual( reg.delete_key_recursive(hive="HKLM", key=FAKE_KEY), expected ) finally: reg.delete_key_recursive(hive="HKLM", key=FAKE_KEY)
def test_delete_key_recursive(self): ''' Test the delete_key_recursive function ''' try: self.assertTrue( reg.set_value(hive='HKLM', key=FAKE_KEY, vname='fake_name', vdata='fake_value')) expected = { 'Deleted': ['\\'.join(['HKLM', FAKE_KEY])], 'Failed': [] } self.assertDictEqual( reg.delete_key_recursive(hive='HKLM', key=FAKE_KEY), expected) finally: reg.delete_key_recursive(hive='HKLM', key=FAKE_KEY)
def test_set_value_unicode(self): ''' Test - set a registry plain text subkey name to a unicode string value ''' vname = 'TestUniccodeString' subkey = 'Software\\SaltStackTest' test1_success = False test2_success = False test1_success = win_mod_reg.set_value('HKEY_LOCAL_MACHINE', subkey, vname, UNICODETEST_WITH_SIGNS) # Now use _winreg direct to see if it worked as expected if test1_success: handle = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, subkey, 0, _winreg.KEY_ALL_ACCESS) (current_vdata, dummy_current_vtype) = _winreg.QueryValueEx(handle, vname) _winreg.CloseKey(handle) test2_success = (current_vdata == UNICODETEST_WITH_SIGNS) self.assertTrue(test1_success and test2_success)
def test_set_value_default(self): """ Test the set_value function on the default value """ try: self.assertTrue( reg.set_value(hive="HKLM", key=FAKE_KEY, vdata="fake_default_data") ) expected = { "hive": "HKLM", "key": FAKE_KEY, "success": True, "vdata": "fake_default_data", "vname": "(Default)", "vtype": "REG_SZ", } self.assertEqual(reg.read_value(hive="HKLM", key=FAKE_KEY), expected) finally: reg.delete_key_recursive(hive="HKLM", key=FAKE_KEY)
def test_delete_value_unicode_key(self): """ Test the delete_value function on a unicode key """ try: self.assertTrue( reg.set_value( hive="HKLM", key="\\".join([FAKE_KEY, UNICODE_KEY]), vname="fake_name", vdata="junk data", )) self.assertTrue( reg.delete_value( hive="HKLM", key="\\".join([FAKE_KEY, UNICODE_KEY]), vname="fake_name", )) finally: reg.delete_key_recursive(hive="HKLM", key=FAKE_KEY)
def test_delete_key_recursive_failed_to_delete(self): ''' Test the delete_key_recursive function on failure to delete a key ''' try: self.assertTrue( reg.set_value(hive='HKLM', key=FAKE_KEY, vname='fake_name', vdata='fake_value')) expected = { 'Deleted': [], 'Failed': ['\\'.join(['HKLM', FAKE_KEY]) + ' Unknown error'] } mock_error = MagicMock(side_effect=WindowsError('Unknown error')) # pylint: disable=undefined-variable with patch('salt.utils.win_reg.win32api.RegDeleteKey', mock_error): self.assertDictEqual( reg.delete_key_recursive(hive='HKLM', key=FAKE_KEY), expected) finally: reg.delete_key_recursive(hive='HKLM', key=FAKE_KEY)
def test_set_value_default(self): ''' Test the set_value function on the default value ''' try: self.assertTrue( reg.set_value(hive='HKLM', key=FAKE_KEY, vdata='fake_default_data')) expected = { 'hive': 'HKLM', 'key': FAKE_KEY, 'success': True, 'vdata': 'fake_default_data', 'vname': '(Default)', 'vtype': 'REG_SZ' } self.assertEqual(reg.read_value(hive='HKLM', key=FAKE_KEY), expected) finally: reg.delete_key_recursive(hive='HKLM', key=FAKE_KEY)
def test_set_value_unicode_value(self): ''' Test the set_value function on a unicode value ''' try: self.assertTrue( reg.set_value(hive='HKLM', key=FAKE_KEY, vname='fake_unicode', vdata=UNICODE_VALUE)) expected = { 'hive': 'HKLM', 'key': FAKE_KEY, 'success': True, 'vdata': UNICODE_VALUE, 'vname': 'fake_unicode', 'vtype': 'REG_SZ' } self.assertEqual( reg.read_value(hive='HKLM', key=FAKE_KEY, vname='fake_unicode'), expected) finally: reg.delete_key_recursive(hive='HKLM', key=FAKE_KEY)
def test_delete_key_recursive_failed_to_delete(self): """ Test the delete_key_recursive function on failure to delete a key """ try: self.assertTrue( reg.set_value(hive="HKLM", key=FAKE_KEY, vname="fake_name", vdata="fake_value")) expected = { "Deleted": [], "Failed": ["\\".join(["HKLM", FAKE_KEY]) + " Unknown error"], } # pylint: disable=undefined-variable mock_error = MagicMock(side_effect=WindowsError("Unknown error")) # pylint: enable=undefined-variable with patch("salt.utils.win_reg.win32api.RegDeleteKey", mock_error): self.assertDictEqual( reg.delete_key_recursive(hive="HKLM", key=FAKE_KEY), expected) finally: reg.delete_key_recursive(hive="HKLM", key=FAKE_KEY)
def test_set_value_reg_qword(self): ''' Test the set_value function on a REG_QWORD value ''' try: self.assertTrue( reg.set_value(hive='HKLM', key=FAKE_KEY, vname='qword_value', vdata=123, vtype='REG_QWORD')) expected = { 'hive': 'HKLM', 'key': FAKE_KEY, 'success': True, 'vdata': 123, 'vname': 'qword_value', 'vtype': 'REG_QWORD' } self.assertEqual( reg.read_value(hive='HKLM', key=FAKE_KEY, vname='qword_value'), expected) finally: reg.delete_key_recursive(hive='HKLM', key=FAKE_KEY)
def test_delete_key_recursive_unicode(self): """ Test the delete_key_recursive function on value within a unicode key """ try: self.assertTrue( reg.set_value( hive="HKLM", key="\\".join([FAKE_KEY, UNICODE_KEY]), vname="fake_name", vdata="fake_value", )) expected = { "Deleted": ["\\".join(["HKLM", FAKE_KEY, UNICODE_KEY])], "Failed": [], } self.assertDictEqual( reg.delete_key_recursive(hive="HKLM", key="\\".join([FAKE_KEY, UNICODE_KEY])), expected, ) finally: reg.delete_key_recursive(hive="HKLM", key=FAKE_KEY)
def test_set_value_unicode_value(self): """ Test the set_value function on a unicode value """ try: self.assertTrue( reg.set_value( hive="HKLM", key=FAKE_KEY, vname="fake_unicode", vdata=UNICODE_VALUE ) ) expected = { "hive": "HKLM", "key": FAKE_KEY, "success": True, "vdata": UNICODE_VALUE, "vname": "fake_unicode", "vtype": "REG_SZ", } self.assertEqual( reg.read_value(hive="HKLM", key=FAKE_KEY, vname="fake_unicode"), expected, ) finally: reg.delete_key_recursive(hive="HKLM", key=FAKE_KEY)