def setUp(self): self.test_dir = '_manifest_test' self.manifest_file = make_path( self.test_dir, 'manifest/manifest.yml' ) self.create_directory_structure() extension_list = ['exe', 'aspx'] self.file_manifest = FileManifest(self.test_dir, ['foo', 'bar'], self.manifest_file, extension_list ) self.expected_manifest_dict = {'foo': {'file.exe': 'b66b5b56809078def934c04cda9e791f'}, 'bar': {'file.txt': '', 'bar2/file.aspx': 'dbf1f2836e1b325fcfdfa6fca6aee3c1'}} self.mapping_dictionary = { 'bar': make_path( self.test_dir, 'bar'), 'foo': make_path( self.test_dir, 'foo') }
class FileManifestTest(unittest.TestCase): def setUp(self): self.test_dir = '_manifest_test' self.manifest_file = make_path( self.test_dir, 'manifest/manifest.yml' ) self.create_directory_structure() extension_list = ['exe', 'aspx'] self.file_manifest = FileManifest(self.test_dir, ['foo', 'bar'], self.manifest_file, extension_list ) self.expected_manifest_dict = {'foo': {'file.exe': 'b66b5b56809078def934c04cda9e791f'}, 'bar': {'file.txt': '', 'bar2/file.aspx': 'dbf1f2836e1b325fcfdfa6fca6aee3c1'}} self.mapping_dictionary = { 'bar': make_path( self.test_dir, 'bar'), 'foo': make_path( self.test_dir, 'foo') } def create_directory_structure(self): self.start_dir = get_slash_cwd() force_remove_dir(self.test_dir) log_command( 'bash -c "mkdir -p %s"' % self.test_dir ) for subdir in [ 'manifest', make_path('bar','bar2'), 'foo' ]: full_path = make_path(self.test_dir, subdir) log_command('bash -c "mkdir -p %s"' % full_path) fp = open( make_path(self.test_dir, 'bar','file.txt'), 'w' ) fp.write("This is text.") fp.close() del fp fp = open( make_path(self.test_dir, 'bar','bar2','file.aspx'), 'w' ) fp.write(u"Aspx file.") fp.close() del fp fp = open( make_path(self.test_dir, 'foo','file.exe'), 'w' ) fp.write("\x45\x90\x08\x21\x05") fp.close() del fp def tearDown(self): return force_remove_dir(self.test_dir) def test_create_manifest_file(self): self.file_manifest.create_manifest() if self.file_manifest.manifest_dictionary != self.expected_manifest_dict: print "Expected: %s\nGot : %s" % (self.file_manifest.manifest_dictionary, self.expected_manifest_dict) assert self.file_manifest.manifest_dictionary == self.expected_manifest_dict, self.file_manifest.manifest_dictionary self.file_manifest.write_manifest_file() assert os.path.isfile(self.manifest_file) def test_verify_manifest(self): manifest_file_handle = open( self.manifest_file, 'w' ) json.dump( self.expected_manifest_dict, manifest_file_handle) manifest_file_handle.flush() manifest_file_handle.close() self.file_manifest.load_manifest() assert self.file_manifest.manifest_dictionary == self.expected_manifest_dict assert self.file_manifest.verify_manifest( self.mapping_dictionary ) == [] force_remove_file( make_path(self.test_dir, 'bar', 'file.txt') ) error_list = self.file_manifest.verify_manifest( self.mapping_dictionary ) assert error_list != [], error_list open( make_path(self.test_dir, 'bar', 'file.txt'), 'w' ).write("New text.") error_list = self.file_manifest.verify_manifest( self.mapping_dictionary ) assert error_list == [], error_list open( make_path(self.test_dir, 'bar', 'bar2', 'file.aspx'), 'w' ).write(u"New aspx.") error_list = self.file_manifest.verify_manifest( self.mapping_dictionary ) assert error_list != [], error_list