def on_send_clicked(self, checked): self.send_report_button.setEnabled(False) self.send_report_button.setText(tr("SENDING...")) endpoint = 'http://reporter.tribler.org/report' sys_info = "" sys_info_dict = defaultdict(lambda: []) for ind in range(self.env_variables_list.topLevelItemCount()): item = self.env_variables_list.topLevelItem(ind) key = item.text(0) value = item.text(1) sys_info += f"{key}\t{value}\n" sys_info_dict[key].append(value) comments = self.comments_text_edit.toPlainText() if len(comments) == 0: comments = tr("Not provided") stack = self.error_text_edit.toPlainText() post_data = { "version": self.tribler_version, "machine": platform.machine(), "os": platform.platform(), "timestamp": int(time.time()), "sysinfo": sys_info, "comments": comments, "stack": stack, } SentryReporter.send_event(self.sentry_event, post_data, sys_info_dict, self.additional_tags) TriblerNetworkRequest(endpoint, self.on_report_sent, raw_data=tribler_urlencode(post_data), method='POST')
def test_send_defaults(): assert SentryReporter.send_event(None, None, None) is None assert SentryReporter.send_event(event={}) == { 'contexts': { 'browser': { 'name': 'Tribler', 'version': None }, 'reporter': { '_stacktrace': [], '_stacktrace_context': [], '_stacktrace_extra': [], 'comments': None, OS_ENVIRON: {}, 'sysinfo': {}, 'events': {}, }, }, 'tags': { 'machine': None, 'os': None, 'platform': None, PLATFORM_DETAILS: None, 'version': None }, }
def test_send_additional_tags(): assert SentryReporter.send_event( event={}, additional_tags={'tag_key': 'tag_value'}) == { 'contexts': { 'browser': { 'name': 'Tribler', 'version': None }, 'reporter': { '_stacktrace': [], '_stacktrace_context': [], '_stacktrace_extra': [], 'comments': None, OS_ENVIRON: {}, 'sysinfo': {}, 'events': {}, }, }, 'tags': { 'machine': None, 'os': None, 'platform': None, 'platform.details': None, 'version': None, 'tag_key': 'tag_value', }, }
def test_send_sys_info(): assert SentryReporter.send_event( event={}, sys_info={ 'platform': ['darwin'], PLATFORM_DETAILS: ['details'], OS_ENVIRON: ['KEY:VALUE', 'KEY1:VALUE1'], 'event_1': [{ 'type': '' }], 'request_1': [{}], 'event_2': [], 'request_2': [], }, ) == { 'contexts': { 'browser': { 'name': 'Tribler', 'version': None }, 'reporter': { '_stacktrace': [], '_stacktrace_context': [], '_stacktrace_extra': [], 'comments': None, OS_ENVIRON: { 'KEY': 'VALUE', 'KEY1': 'VALUE1' }, 'sysinfo': { 'platform': ['darwin'], PLATFORM_DETAILS: ['details'] }, 'events': { 'event_1': [{ 'type': '' }], 'request_1': [{}], 'event_2': [], 'request_2': [] }, }, }, 'tags': { 'machine': None, 'os': None, 'platform': 'darwin', 'platform.details': 'details', 'version': None }, }
def test_send_post_data(): assert SentryReporter.send_event( event={'a': 'b'}, post_data={ "version": '0.0.0', "machine": 'x86_64', "os": 'posix', "timestamp": 42, "sysinfo": '', "comments": 'comment', "stack": 'l1\nl2--LONG TEXT--l3\nl4', }, ) == { 'a': 'b', 'contexts': { 'browser': { 'name': 'Tribler', 'version': '0.0.0' }, 'reporter': { '_stacktrace': ['l1', 'l2'], '_stacktrace_context': [], '_stacktrace_extra': ['l3', 'l4'], 'comments': 'comment', 'os.environ': {}, 'sysinfo': {}, 'events': {}, }, }, 'tags': { 'machine': 'x86_64', 'os': 'posix', 'platform': None, PLATFORM_DETAILS: None, 'version': '0.0.0' }, }