2007-11-21 12:31:26 +01:00
# Unix SMB/CIFS implementation.
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
2011-09-13 01:10:37 +02:00
#
2007-11-21 12:31:26 +01:00
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
2011-09-13 01:10:37 +02:00
#
2007-11-21 12:31:26 +01:00
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
2011-09-13 01:10:37 +02:00
#
2007-11-21 12:31:26 +01:00
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
2010-12-05 16:56:27 +01:00
""" Tests for samba.registry. """
2007-12-22 05:03:02 -06:00
import os
2008-05-21 23:59:34 +02:00
from samba import registry
2007-12-22 05:03:02 -06:00
import samba . tests
2017-10-11 13:05:01 +02:00
from samba import WERRORError
from subprocess import Popen , PIPE
2007-11-21 12:31:26 +01:00
2010-06-19 18:58:18 +02:00
class HelperTests ( samba . tests . TestCase ) :
2007-11-21 12:31:26 +01:00
def test_predef_to_name ( self ) :
2012-09-16 14:18:51 +02:00
self . assertEquals ( " HKEY_LOCAL_MACHINE " ,
2008-12-18 16:49:33 +00:00
registry . get_predef_name ( 0x80000002 ) )
2007-11-21 12:31:26 +01:00
def test_str_regtype ( self ) :
self . assertEquals ( " REG_DWORD " , registry . str_regtype ( 4 ) )
2007-12-22 05:03:02 -06:00
class HiveTests ( samba . tests . TestCaseInTempDir ) :
2010-06-19 18:58:18 +02:00
2007-12-22 05:03:02 -06:00
def setUp ( self ) :
super ( HiveTests , self ) . setUp ( )
2007-12-25 16:36:44 -06:00
self . hive_path = os . path . join ( self . tempdir , " ldb_new.ldb " )
self . hive = registry . open_ldb ( self . hive_path )
def tearDown ( self ) :
del self . hive
os . unlink ( self . hive_path )
2010-06-19 18:58:18 +02:00
super ( HiveTests , self ) . tearDown ( )
2007-12-22 05:03:02 -06:00
def test_ldb_new ( self ) :
self . assertTrue ( self . hive is not None )
2017-10-11 13:05:01 +02:00
def test_set_value ( self ) :
self . assertIsNone ( self . hive . set_value ( ' foo1 ' , 1 , ' bar1 ' ) )
def test_flush ( self ) :
self . assertIsNone ( self . hive . set_value ( ' foo2 ' , 1 , ' bar2 ' ) )
self . assertIsNone ( self . hive . flush ( ) )
2017-11-22 16:53:52 +01:00
tdbdump_tool = ' tdbdump '
if os . path . isfile ( ' bin/tdbdump ' ) :
tdbdump_tool = ' bin/tdbdump '
proc = Popen ( [ tdbdump_tool , self . hive_path ] , stdout = PIPE , stderr = PIPE )
2017-10-11 13:05:01 +02:00
tdb_dump , err = proc . communicate ( )
self . assertTrue ( b ' DN=VALUE=FOO2,HIVE=NONE ' in tdb_dump )
def test_del_value ( self ) :
self . assertIsNone ( self . hive . set_value ( ' foo3 ' , 1 , ' bar3 ' ) )
self . assertIsNone ( self . hive . del_value ( ' foo3 ' ) )
2007-12-22 05:03:02 -06:00
2017-10-11 13:05:01 +02:00
def test_del_nonexisting_value ( self ) :
self . assertRaises ( WERRORError , self . hive . del_value , ' foo4 ' )
2007-12-22 05:03:02 -06:00
2010-06-19 18:58:18 +02:00
class RegistryTests ( samba . tests . TestCase ) :
2007-11-21 12:31:26 +01:00
def test_new ( self ) :
self . registry = registry . Registry ( )
2017-10-11 13:05:01 +02:00
self . assertIsNotNone ( self . registry )