本文整理汇总了Python中socorro.lib.util.DotDict.os_version方法的典型用法代码示例。如果您正苦于以下问题:Python DotDict.os_version方法的具体用法?Python DotDict.os_version怎么用?Python DotDict.os_version使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类socorro.lib.util.DotDict
的用法示例。
在下文中一共展示了DotDict.os_version方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_stuff_missing
# 需要导入模块: from socorro.lib.util import DotDict [as 别名]
# 或者: from socorro.lib.util.DotDict import os_version [as 别名]
def test_stuff_missing(self):
config = self.get_basic_config()
raw_crash = copy.copy(canonical_standard_raw_crash)
raw_dumps = {}
processed_crash = DotDict()
processor_meta = self.get_basic_processor_meta()
rule = OSInfoRule(config)
# the call to be tested
rule.act(raw_crash, raw_dumps, processed_crash, processor_meta)
# processed crash should have empties
expected = DotDict()
expected.os_version = ''
expected.os_name = ''
assert processed_crash == expected
# raw crash should be unchanged
assert raw_crash == canonical_standard_raw_crash
示例2: _analyze_header
# 需要导入模块: from socorro.lib.util import DotDict [as 别名]
# 或者: from socorro.lib.util.DotDict import os_version [as 别名]
def _analyze_header(self, crash_id, dump_analysis_line_iterator,
submitted_timestamp, processor_notes):
""" Scan through the lines of the dump header:
- extract data to update the record for this crash in 'reports',
including the id of the crashing thread
Returns: Dictionary of the various values that were updated in
the database
Input parameters:
- dump_analysis_line_iterator - an iterator object that feeds lines
from crash dump data
- submitted_timestamp
- processor_notes
"""
crashed_thread = None
processed_crash_update = DotDict()
# minimal update requirements
processed_crash_update.success = True
processed_crash_update.os_name = None
processed_crash_update.os_version = None
processed_crash_update.cpu_name = None
processed_crash_update.cpu_info = None
processed_crash_update.reason = None
processed_crash_update.address = None
header_lines_were_found = False
flash_version = None
for line in dump_analysis_line_iterator:
line = line.strip()
# empty line separates header data from thread data
if line == '':
break
header_lines_were_found = True
values = map(lambda x: x.strip(), line.split('|'))
if len(values) < 3:
processor_notes.append('Cannot parse header line "%s"'
% line)
continue
values = map(emptyFilter, values)
if values[0] == 'OS':
name = self._truncate_or_none(values[1], 100)
version = self._truncate_or_none(values[2], 100)
processed_crash_update.os_name = name
processed_crash_update.os_version = version
elif values[0] == 'CPU':
processed_crash_update.cpu_name = \
self._truncate_or_none(values[1], 100)
processed_crash_update.cpu_info = \
self._truncate_or_none(values[2], 100)
try:
processed_crash_update.cpu_info = ('%s | %s' % (
processed_crash_update.cpu_info,
self._get_truncate_or_none(values[3], 100)
))
except IndexError:
pass
elif values[0] == 'Crash':
processed_crash_update.reason = \
self._truncate_or_none(values[1], 255)
try:
processed_crash_update.address = \
self._truncate_or_none(values[2], 20)
except IndexError:
processed_crash_update.address = None
try:
crashed_thread = int(values[3])
except Exception:
crashed_thread = None
elif values[0] == 'Module':
# grab only the flash version, which is not quite as easy as
# it looks
if not flash_version:
flash_version = self._get_flash_version(values)
if not header_lines_were_found:
message = "%s returned no header lines for crash_id: %s" % \
(self.config.minidump_stackwalk_pathname, crash_id)
processor_notes.append(message)
#self.config.logger.warning("%s", message)
if crashed_thread is None:
message = "No thread was identified as the cause of the crash"
processor_notes.append(message)
self.config.logger.info("%s", message)
processed_crash_update.crashedThread = crashed_thread
if not flash_version:
flash_version = '[blank]'
processed_crash_update.flash_version = flash_version
#self.config.logger.debug(
# " updated values %s",
# processed_crash_update
#)
return processed_crash_update