Mercurial > hgsubversion
comparison hg_delta_editor.py @ 146:4da9f20aef01
Add some more coverage directives.
| author | Augie Fackler <durin42@gmail.com> |
|---|---|
| date | Mon, 15 Dec 2008 22:48:04 -0600 |
| parents | b37c401b7f92 |
| children | 22162380c4b9 |
comparison
equal
deleted
inserted
replaced
| 145:b37c401b7f92 | 146:4da9f20aef01 |
|---|---|
| 25 try: | 25 try: |
| 26 f, path = tempfile.mkstemp(prefix='pickling', dir=dir) | 26 f, path = tempfile.mkstemp(prefix='pickling', dir=dir) |
| 27 f = os.fdopen(f, 'w') | 27 f = os.fdopen(f, 'w') |
| 28 pickle.dump(data, f) | 28 pickle.dump(data, f) |
| 29 f.close() | 29 f.close() |
| 30 except: | 30 except: #pragma: no cover |
| 31 raise | 31 raise |
| 32 else: | 32 else: |
| 33 util.rename(path, file_path) | 33 util.rename(path, file_path) |
| 34 | 34 |
| 35 def stash_exception_on_self(fn): | 35 def stash_exception_on_self(fn): |
| 41 got an exception in the replay process. | 41 got an exception in the replay process. |
| 42 """ | 42 """ |
| 43 def fun(self, *args, **kwargs): | 43 def fun(self, *args, **kwargs): |
| 44 try: | 44 try: |
| 45 return fn(self, *args, **kwargs) | 45 return fn(self, *args, **kwargs) |
| 46 except: | 46 except: #pragma: no cover |
| 47 if not hasattr(self, '_exception_info'): | 47 if not hasattr(self, '_exception_info'): |
| 48 self._exception_info = sys.exc_info() | 48 self._exception_info = sys.exc_info() |
| 49 raise | 49 raise |
| 50 return fun | 50 return fun |
| 51 | 51 |
| 73 self.repo = repo | 73 self.repo = repo |
| 74 self.path = os.path.normpath(os.path.join(self.repo.path, '..')) | 74 self.path = os.path.normpath(os.path.join(self.repo.path, '..')) |
| 75 elif path: | 75 elif path: |
| 76 self.path = path | 76 self.path = path |
| 77 self.__setup_repo(path) | 77 self.__setup_repo(path) |
| 78 else: | 78 else: #pragma: no cover |
| 79 raise TypeError("Expected either path or repo argument") | 79 raise TypeError("Expected either path or repo argument") |
| 80 | 80 |
| 81 self.subdir = subdir | 81 self.subdir = subdir |
| 82 if self.subdir and self.subdir[0] == '/': | 82 if self.subdir and self.subdir[0] == '/': |
| 83 self.subdir = self.subdir[1:] | 83 self.subdir = self.subdir[1:] |
| 337 self.tags.update(added_tags) | 337 self.tags.update(added_tags) |
| 338 self.branches.update(added_branches) | 338 self.branches.update(added_branches) |
| 339 self._save_metadata() | 339 self._save_metadata() |
| 340 | 340 |
| 341 def commit_current_delta(self): | 341 def commit_current_delta(self): |
| 342 if hasattr(self, '_exception_info'): | 342 if hasattr(self, '_exception_info'): #pragma: no cover |
| 343 traceback.print_exception(*self._exception_info) | 343 traceback.print_exception(*self._exception_info) |
| 344 raise ReplayException() | 344 raise ReplayException() |
| 345 if self.missing_plaintexts: | 345 if self.missing_plaintexts: |
| 346 raise MissingPlainTextError() | 346 raise MissingPlainTextError() |
| 347 files_to_commit = self.current_files.keys() | 347 files_to_commit = self.current_files.keys() |
| 439 continue | 439 continue |
| 440 parent_ctx = self.repo.changectx(ha) | 440 parent_ctx = self.repo.changectx(ha) |
| 441 def del_all_files(*args): | 441 def del_all_files(*args): |
| 442 raise IOError | 442 raise IOError |
| 443 # True here meant nuke all files, shouldn't happen with branch closing | 443 # True here meant nuke all files, shouldn't happen with branch closing |
| 444 if self.commit_branches_empty[branch]: | 444 if self.commit_branches_empty[branch]: #pragma: no cover |
| 445 assert False, 'Got asked to commit non-closed branch as empty with no files. Please report this issue.' | 445 assert False, 'Got asked to commit non-closed branch as empty with no files. Please report this issue.' |
| 446 extra = {} | 446 extra = {} |
| 447 if branch: | 447 if branch: |
| 448 extra['branch'] = branch | 448 extra['branch'] = branch |
| 449 current_ctx = context.memctx(self.repo, | 449 current_ctx = context.memctx(self.repo, |
| 697 source = cStringIO.StringIO(base) | 697 source = cStringIO.StringIO(base) |
| 698 target = cStringIO.StringIO() | 698 target = cStringIO.StringIO() |
| 699 self.stream = target | 699 self.stream = target |
| 700 | 700 |
| 701 handler, baton = delta.svn_txdelta_apply(source, target, None) | 701 handler, baton = delta.svn_txdelta_apply(source, target, None) |
| 702 if not callable(handler): | 702 if not callable(handler): #pragma: no cover |
| 703 # TODO(augie) Raise a real exception, don't just fail an assertion. | 703 # TODO(augie) Raise a real exception, don't just fail an assertion. |
| 704 assert False, 'handler not callable, bindings are broken' | 704 assert False, 'handler not callable, bindings are broken' |
| 705 def txdelt_window(window): | 705 def txdelt_window(window): |
| 706 try: | 706 try: |
| 707 if not self._is_path_valid(self.current_file): | 707 if not self._is_path_valid(self.current_file): |
| 708 return | 708 return |
| 709 handler(window, baton) | 709 handler(window, baton) |
| 710 # window being None means commit this file | 710 # window being None means commit this file |
| 711 if not window: | 711 if not window: |
| 712 self.current_files[self.current_file] = target.getvalue() | 712 self.current_files[self.current_file] = target.getvalue() |
| 713 except core.SubversionException, e: | 713 except core.SubversionException, e: #pragma: no cover |
| 714 if e.message == 'Delta source ended unexpectedly': | 714 if e.message == 'Delta source ended unexpectedly': |
| 715 self.missing_plaintexts.add(self.current_file) | 715 self.missing_plaintexts.add(self.current_file) |
| 716 else: | 716 else: #pragma: no cover |
| 717 self._exception_info = sys.exc_info() | 717 self._exception_info = sys.exc_info() |
| 718 raise | 718 raise |
| 719 except: | 719 except: #pragma: no cover |
| 720 print len(base), self.current_file | 720 print len(base), self.current_file |
| 721 self._exception_info = sys.exc_info() | 721 self._exception_info = sys.exc_info() |
| 722 raise | 722 raise |
| 723 return txdelt_window | 723 return txdelt_window |
| 724 | 724 |
