def test_notify_stacktrace(self): samples.call_bugsnag_nested() json_body = self.server.received[0]['json_body'] event = json_body['events'][0] frames = event['exceptions'][0]['stacktrace'] self.assertTrue(frames[0]['file'].endswith('fixtures/samples.py')) self.assertEqual(11, frames[0]['lineNumber']) self.assertEqual('chain_3', frames[0]['method']) self.assertEqual('chain_3', frames[0]['method']) self.assertEqual('', frames[0]['code']['7']) self.assertEqual('', frames[0]['code']['8']) self.assertEqual('def chain_3():', frames[0]['code']['9']) self.assertEqual(' import bugsnag', frames[0]['code']['10']) self.assertEqual(" bugsnag.notify(Exception('oh noooo'))", frames[0]['code']['11']) self.assertTrue(frames[1]['file'].endswith('fixtures/samples.py')) self.assertEqual(6, frames[1]['lineNumber']) self.assertEqual('chain_2', frames[1]['method']) self.assertEqual('', frames[1]['code']['4']) self.assertEqual('def chain_2():', frames[1]['code']['5']) self.assertEqual(' chain_3()', frames[1]['code']['6']) self.assertEqual('', frames[1]['code']['7']) self.assertEqual('', frames[1]['code']['8']) self.assertTrue(frames[2]['file'].endswith('fixtures/samples.py')) self.assertEqual(2, frames[2]['lineNumber']) self.assertEqual('def call_bugsnag_nested():', frames[2]['code']['1']) self.assertEqual(' chain_2()', frames[2]['code']['2']) self.assertEqual('', frames[2]['code']['3']) self.assertEqual('', frames[2]['code']['4'])