Replace the keyed message; raise KeyError if it doesn't exist.
(self, key, message)
| 1053 | os.remove(path) |
| 1054 | |
| 1055 | def __setitem__(self, key, message): |
| 1056 | """Replace the keyed message; raise KeyError if it doesn't exist.""" |
| 1057 | path = os.path.join(self._path, str(key)) |
| 1058 | try: |
| 1059 | f = open(path, 'rb+') |
| 1060 | except OSError as e: |
| 1061 | if e.errno == errno.ENOENT: |
| 1062 | raise KeyError('No message with key: %s' % key) |
| 1063 | else: |
| 1064 | raise |
| 1065 | try: |
| 1066 | if self._locked: |
| 1067 | _lock_file(f) |
| 1068 | try: |
| 1069 | os.close(os.open(path, os.O_WRONLY | os.O_TRUNC)) |
| 1070 | self._dump_message(message, f) |
| 1071 | if isinstance(message, MHMessage): |
| 1072 | self._dump_sequences(message, key) |
| 1073 | finally: |
| 1074 | if self._locked: |
| 1075 | _unlock_file(f) |
| 1076 | finally: |
| 1077 | _sync_close(f) |
| 1078 | |
| 1079 | def get_message(self, key): |
| 1080 | """Return a Message representation or raise a KeyError.""" |
no test coverage detected