import unittest from commontest import * from rdiff_backup import C from rdiff_backup.rpath import * class CTest(unittest.TestCase): """Test the C module by comparing results to python functions""" def test_make_dict(self): """Test making stat dictionaries""" rp1 = RPath(Globals.local_connection, "/dev/ttyS1") rp2 = RPath(Globals.local_connection, "./ctest.py") rp3 = RPath(Globals.local_connection, "aestu/aeutoheu/oeu") rp4 = RPath(Globals.local_connection, "testfiles/various_file_types/symbolic_link") rp5 = RPath(Globals.local_connection, "testfiles/various_file_types/fifo") for rp in [rp1, rp2, rp3, rp4, rp5]: dict1 = rp.make_file_dict_old() dict2 = C.make_file_dict(rp.path) if dict1 != dict2: print "Python dictionary: ", dict1 print "not equal to C dictionary: ", dict2 print "for path ", rp.path assert 0 def test_strlong(self): """Test str2long and long2str""" self.assertRaises(TypeError, C.long2str, "hello") self.assertRaises(TypeError, C.str2long, 34) self.assertRaises(TypeError, C.str2long, "oeuo") self.assertRaises(TypeError, C.str2long, "oeuoaoeuaoeu") for s in ["\0\0\0\0\0\0\0", "helloto", "\xff\xff\xff\xff\xff\xff\xff", "randoms"]: assert len(s) == 7, repr(s) s_out = C.long2str(C.str2long(s)) assert s_out == s, (s_out, C.str2long(s), s) for l in 0L, 1L, 4000000000L, 34234L, 234234234L: assert C.str2long(C.long2str(l)) == l def test_sync(self): """Test running C.sync""" C.sync() if __name__ == "__main__": unittest.main()