summaryrefslogtreecommitdiff
path: root/rdiff-backup/testing/metadatatest.py
blob: bad6d271b5a026e64392299b355210c3ccb68964 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import unittest, os
from rdiff_backup.metadata import *
from rdiff_backup import rpath, Globals

class MetadataTest(unittest.TestCase):
	def testQuote(self):
		"""Test quoting and unquoting"""
		filenames = ["foo", ".", "hello\nthere", "\\", "\\\\\\",
					 "h\no\t\x87\n", " "]
		for filename in filenames:
			quoted = quote_path(filename)
			assert not "\n" in quoted
			result = unquote_path(quoted)
			assert result == filename, (quoted, result, filename)

	def testRORP2Record(self):
		"""Test turning RORPs into records and back again"""
		vft = rpath.RPath(Globals.local_connection,
						  "testfiles/various_file_types")
		rpaths = map(lambda x: vft.append(x), vft.listdir())
		extra_rpaths = map(lambda x: rpath.RPath(Globals.local_connection, x),
						   ['/bin/ls', '/dev/ttyS0', '/dev/hda', 'aoeuaou'])

		for rp in [vft] + rpaths + extra_rpaths:
			record = RORP2Record(rp)
			#print record
			new_rorp = Record2RORP(record)
			assert new_rorp == rp, (new_rorp, rp, record)


if __name__ == "__main__": unittest.main()