apptuit-fluent-plugin 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,71 @@
1
+ #
2
+ # Copyright 2017 Agilx, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ #!/usr/bin/env ruby
17
+ """Exception Fingerprint tests"""
18
+ require 'test/unit/assertions'
19
+ include Test::Unit::Assertions
20
+
21
+
22
+ class NodeFingerprintTests
23
+
24
+ def test_fp_not_a_stacktrace(fingerprinter)
25
+ result = fingerprinter.fingerprint_nodejs(
26
+ 'User and his address details in appDataDynamic call {"user_type":"member","user_id":6763239,"selected_address":{"nick":"","id":"102840374","lat":10.96460749142318,"lng":76.9185347010498,"area":"Perur Chettipalayam, Coimbatore, Tamil Nadu","city_name":"Coimbatore","city_id":12,"city_short_name":"CBE","pin":641010,"is_partial":false,"is_default":true,"residential_complex":"HAD nagar","first_name":"Manhar","last_name":"JS","contact_area":"Perur Chettipalayam, Coimbatore, Tamil Nadu","contact_no":"8489947000","landmark":"nest to GVD Nagar arch","address_1":"oriental Inframart","address_2":"perur Kovaipudur main road","is_express":true,"shadow_city_id":12}}')
27
+ assert_equal(nil,result)
28
+ end
29
+
30
+ def test_fp_basic(fingerprinter)
31
+ err_name, fingerprint, essence, stack = fingerprinter.fingerprint_nodejs(
32
+ 'TypeError: First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object. --- at fromObject (buffer.js:262:9) --- at Function.Buffer.from (buffer.js:101:10) --- at new Buffer (buffer.js:80:17) --- at Object.module.exports.decodeBase64 (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/bb-commons/utils/index.js:38:20) --- at module.exports.onAutosearchMapi (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/routes/index.js:96:27) --- at Layer.handle [as handle_request] (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/layer.js:95:5) --- at next (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/route.js:131:13) --- at Route.dispatch (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/route.js:112:3) --- at Layer.handle [as handle_request] (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/layer.js:95:5) --- at /srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/index.js:277:22 --- at param (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/index.js:349:14) --- at param (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/index.js:365:14) --- at param (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/index.js:365:14) --- at Function.process_params (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/index.js:410:3) --- at next (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/index.js:271:10) --- at module.exports.AutocompleteMiddleware (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/routes/middleware.js:8:5) --- at Layer.handle [as handle_request] (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/layer.js:95:5) --- at trim_prefix (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/index.js:312:13) --- at /srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/index.js:280:7 --- at Function.process_params (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/index.js:330:12) --- at next (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/express/lib/router/index.js:271:10) --- at module.exports.AggregatedRequestMiddleware (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/bb-commons/middlewares/aggregated_request_middleware.js:19:5) ')
33
+ assert_equal('TypeError', err_name)
34
+ assert_equal('c791f8a9c9e3f2df435a2852f32a42915dfe5548', fingerprint)
35
+ end
36
+
37
+ def test_fp_short(fingerprinter)
38
+ err_name, fingerprint, essence, stack = fingerprinter.fingerprint_nodejs(
39
+ 'TypeError: Cannot read property \'Hub\' of null --- at async (/srv/webapps/bigbasket.com/BigBasket/services/clan/node_modules/bb-commons/restWrappers/memberStores.js:422:31) --- at tryBlock (/srv/webapps/bigbasket.com/BigBasket/services/clan/node_modules/asyncawait/src/async/fiberManager.js:39:33) --- at runInFiber (/srv/webapps/bigbasket.com/BigBasket/services/clan/node_modules/asyncawait/src/async/fiberManager.js:26:9) ')
40
+ # print(err_name + ":" + fingerprint)
41
+ assert_equal('TypeError', err_name)
42
+ assert_equal('dce7fa69b17a121ffeb250c9528fda048fa59ed7', fingerprint)
43
+ end
44
+
45
+ def test_fp_mulitline_message(fingerprinter)
46
+ log_message = 'SolrError: {"responseHeader":{"zkConnected":true,"status":400,"QTime":1,"params":{"qt":"dismax_tc","fq":"parent_locality_283_i:1 AND text:()","wt":"json"}},"error":{"metadata":["error-class","org.apache.solr.common.SolrException","root-error-class","org.apache.solr.parser.ParseException"],"msg":"org.apache.solr.search.SyntaxError: Cannot parse \'parent_locality_283_i:1 AND text:()\': Encountered \" \")\" \") \"\" at line 1, column 34.\nWas expecting one of:\n <NOT> ...\n \"+\" ...\n \"-\" ...\n <BAREOPER> ...\n \"(\" ...\n \"*\" ...\n <QUOTED> ...\n <TERM> ...\n <PREFIXTERM> ...\n <WILDTERM> ...\n <REGEXPTERM> ...\n \"[\" ...\n \"{\" ...\n <LPARAMS> ...\n \"filter(\" ...\n <NUMBER> ...\n <TERM> ...\n ","code":400}}\n --- Request URL: http://solrcloud.bigbasket.com:8983/solr/bbconfig/select?fq=parent_locality_283_i:1%20AND%20text:()&qt=dismax_tc&wt=json\n --- Request method: GET\n --- Status code: 400 - Bad Request\n --- Request headers: \n --- accept: application/json; charset=utf-8\n --- host: solrcloud.bigbasket.com:8983\n --- Response headers: \n --- date: Thu, 10 May 2018 06:17:03 GMT\n --- content-type: text/plain;charset=utf-8\n --- content-length: 766\n --- connection: close\n --- cache-control: no-cache, no-store\n --- pragma: no-cache\n --- expires: Sat, 01 Jan 2000 01:00:00 GMT\n --- last-modified: Thu, 10 May 2018 06:17:03 GMT\n --- etag: "16348b22089" --- at IncomingMessage.<anonymous> (/srv/webapps/bigbasket.com/bb-solr-client/lib/solr.js:943:19) --- at emitNone (events.js:91:20) --- at IncomingMessage.emit (events.js:185:7) --- at endReadableNT (_stream_readable.js:974:12) --- at _combinedTickCallback (internal/process/next_tick.js:74:11) --- at process._tickDomainCallback (internal/process/next_tick.js:122:9) '
47
+ err_name, fingerprint, essence, stack = fingerprinter.fingerprint_nodejs(
48
+ log_message)
49
+ #print(err_name + ":" + fingerprint)
50
+ #rint(log_message)
51
+ #print(essence)
52
+ assert_equal('SolrError', err_name)
53
+ assert_equal('9463b56bcf92930574cd9aa1be489ebe97815d4a', fingerprint)
54
+ end
55
+
56
+ def test_fp_json_wrapped(fingerprinter)
57
+ err_name, fingerprint, essence, stack = fingerprinter.fingerprint_nodejs(
58
+ 'Aerospike cache miss for Key::1:nsearch.psauto.cG1eZAYhYyIxNSFxJ3NveWEgc2EibWQLImx0TQolI21yaSEibmZD {"message":"AEROSPIKE_ERR_RECORD_NOT_FOUND","name":"AerospikeError","code":2,"func":"as_event_command_parse_result","file":"src/main/aerospike/as_event.c","line":619,"stack":"AerospikeError: AEROSPIKE_ERR_RECORD_NOT_FOUND at Function.AerospikeError.fromASError (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/aerospike/lib/aerospike_error.js:118:10) at Client.DefaultCallbackHandler [as callbackHandler] (/srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/aerospike/lib/client.js:161:72) at /srv/webapps/bigbasket.com/BigBasket/services/nodeAutosearch/node_modules/aerospike/lib/client.js:1532:19"}')
59
+ # print(err_name + ":" + fingerprint)
60
+ assert_equal('AerospikeError', err_name)
61
+ assert_equal('b0e6ae45ba72ae1aa3b4bfd6f0bd34608d4b3dd3', fingerprint)
62
+ end
63
+
64
+ def test_fp_json_with_at(fingerprinter)
65
+ err_name, fingerprint, essence, stack = fingerprinter.fingerprint_nodejs(
66
+ 'Error in increasing product quantity {"message":"Error in updating the cartItemQty. Should not happen","stack":"Error: Error in updating the cartItemQty. Should not happen at /srv/webapps/bigbasket.com/BigBasket/services/cart/controllers/BasketOperations.js:59:23 at tryBlock (/srv/webapps/bigbasket.com/BigBasket/services/cart/node_modules/asyncawait/src/async/fiberManager.js:39:33) at runInFiber (/srv/webapps/bigbasket.com/BigBasket/services/cart/node_modules/asyncawait/src/async/fiberManager.js:26:9)"}')
67
+ # print(err_name + ":" + fingerprint)
68
+ assert_equal('Error', err_name)
69
+ assert_equal('0e3a7d113bf9787cfa57d2fc8d8f8e43e62ec5be', fingerprint)
70
+ end
71
+ end
@@ -0,0 +1,208 @@
1
+ #
2
+ # Copyright 2017 Agilx, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ #!/usr/bin/env ruby
17
+ """Exception Fingerprint tests"""
18
+ require 'test/unit/assertions'
19
+ include Test::Unit::Assertions
20
+
21
+
22
+ class PythonFingerprintTests
23
+
24
+ def test_fp_tmp(fingerprinter)
25
+ err_name, fingerprint, essence, stack = fingerprinter.fingerprint_python(
26
+ ': upload-picked-order Internal Server Error for order 47353835 :invalid literal for int() with base 10: \'\' Traceback (most recent call last): '+
27
+ '--- File "/srv/webapps/bigbasket.com/BigBasket/wapi/api.py", line 3648, in api_upload_process_picksubtypes '+
28
+ '--- try: '+
29
+ '--- File "/srv/webapps/bigbasket.com/BigBasket/product/models.py", line 227, in get_cached '+
30
+ '--- \'product_description__category\').filter( '+
31
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/query.py", line 781, in filter '+
32
+ '--- return self._filter_or_exclude(False, *args, **kwargs) '+
33
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/query.py", line 799, in _filter_or_exclude '+
34
+ '--- clone.query.add_q(Q(*args, **kwargs)) '+
35
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1260, in add_q '+
36
+ '--- clause, _ = self._add_q(q_object, self.used_aliases) '+
37
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1286, in _add_q '+
38
+ '--- allow_joins=allow_joins, split_subq=split_subq, '+
39
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1220, in build_filter '+
40
+ '--- condition = self.build_lookup(lookups, col, value) '+
41
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1114, in build_lookup '+
42
+ '--- return final_lookup(lhs, rhs) '+
43
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/lookups.py", line 24, in __init__ '+
44
+ '--- self.rhs = self.get_prep_lookup() '+
45
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/lookups.py", line 74, in get_prep_lookup '+
46
+ '--- return self.lhs.output_field.get_prep_value(self.rhs) '+
47
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 1849, in get_prep_value '+
48
+ '--- return int(value) '+
49
+ '--- ValueError: invalid literal for int() with base 10: \'\' ---'
50
+ )
51
+ assert_equal('ValueError', err_name)
52
+ assert_equal('4ba02aa3b1e653a1bcf656be90183b6899561fad', fingerprint)
53
+ end
54
+
55
+
56
+
57
+ def test_fp_colon_in_code(fingerprinter)
58
+ err_name, fingerprint, essence, stack = fingerprinter.fingerprint_python(
59
+ ' Error while sending push notification for order: 46951142 Traceback (most recent call last): '+
60
+ '--- File "order/models.py", line 10760, in alert_order_cancellation_via_email_and_push_notification '+
61
+ '--- try: '+
62
+ '--- File "order/models.py", line 22188, in creating_entry_in_van_asssign_history '+
63
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/query.py", line 555, in latest '+
64
+ '--- return self._earliest_or_latest(field_name=field_name, direction="-") '+
65
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/query.py", line 549, in _earliest_or_latest '+
66
+ '--- return obj.get() '+
67
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/query.py", line 379, in get '+
68
+ '--- self.model._meta.object_name '+
69
+ '--- DoesNotExist: TPLOrderStatusLog matching query does not exist. ---')
70
+ assert_equal('DoesNotExist', err_name)
71
+ assert_equal('3fd256270a264d132c848648789c9b2e7d49be9d', fingerprint)
72
+ end
73
+
74
+ def test_fp_colon_in_code1(fingerprinter)
75
+ err_name, fingerprint, essence, stack = fingerprinter.fingerprint_python(
76
+ '\'AnonymousUser\' object is not iterable Traceback (most recent call last): '+
77
+ '--- File "/srv/webapps/bigbasket.com/BigBasket/mapi/cart_views.py", line 400, in get_cart_items_and_summary '+
78
+ '--- sections_resp = self.add_section_to_basket(cart, cart_dict) '+
79
+ '--- File "/srv/webapps/bigbasket.com/BigBasket/mapi/cart_views.py", line 425, in add_section_to_basket '+
80
+ '--- particular_voucher_id=True) '+
81
+ '--- File "/srv/webapps/bigbasket.com/BigBasket/evoucher/models.py", line 141, in get_promotional_evouchers '+
82
+ '--- valid_vouchers = EVoucher.objects.get_valid_vouchers_for_cart(member, cart) '+
83
+ '--- File "/srv/webapps/bigbasket.com/BigBasket/evoucher/models.py", line 302, in get_valid_vouchers_for_cart '+
84
+ '--- voucher_order_association = self.get_voucher_order_association(vouchers, member) '+
85
+ '--- File "/srv/webapps/bigbasket.com/BigBasket/evoucher/models.py", line 247, in get_voucher_order_association '+
86
+ '--- order__isnull=False) \ '+
87
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method '+
88
+ '--- return getattr(self.get_queryset(), name)(*args, **kwargs) '+
89
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/query.py", line 781, in filter '+
90
+ '--- return self._filter_or_exclude(False, *args, **kwargs) '+
91
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/query.py", line 799, in _filter_or_exclude '+
92
+ '--- clone.query.add_q(Q(*args, **kwargs)) '+
93
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1260, in add_q '+
94
+ '--- clause, _ = self._add_q(q_object, self.used_aliases) '+
95
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1286, in _add_q '+
96
+ '--- allow_joins=allow_joins, split_subq=split_subq, '+
97
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1189, in build_filter '+
98
+ '--- self.check_related_objects(field, value, opts) '+
99
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1088, in check_related_objects '+
100
+ '--- for v in value: '+
101
+ '--- File "/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/utils/functional.py", line 239, in inner '+
102
+ '--- return func(self._wrapped, *args) '+
103
+ '--- TypeError: \'AnonymousUser\' object is not iterable --- ')
104
+ assert_equal('TypeError', err_name)
105
+ assert_equal('ca949fe44e2cd0c874b26d3153cc0f96389b0d6a', fingerprint)
106
+ end
107
+
108
+ def test_fp_one_err(fingerprinter)
109
+ err_name, fingerprint, essence, stack = fingerprinter.fingerprint_python(
110
+ ' Catching exception while processing the Message, '+
111
+ 'with Task ID = 41f916a3-a468-4d89-80c6-c6f1e9e7caef Traceback '+
112
+ '(most recent call last): --- File '+
113
+ '"/srv/webapps/bigbasket.com/BigBasket/bbasync/consumer.py", '+
114
+ 'line 622, in retriable_dispatcher_task --- '+
115
+ 'consumer_group, handler_call_args, handler_call_kwargs, '+
116
+ 'msg_headers) --- File '+
117
+ '"/srv/webapps/bigbasket.com/BigBasket/bbasync/consumer.py", '+
118
+ 'line 518, in dispatcher_task --- '+
119
+ 'handler_call_kwargs) --- '+
120
+ 'File "/srv/webapps/bigbasket.com/BigBasket/bbasync/consumer.py", '+
121
+ 'line 572, in _dispatcher_task --- meth = fn(*args, **kwargs) '+
122
+ '--- File "warehouse/services.py", line 1631, in '+
123
+ 'queueable_make_product_available --- '+
124
+ 'make_product_available_sync(sr_obj_id, old_stock, force, stock) '+
125
+ '--- File "warehouse/services.py", line 1638, in '+
126
+ 'make_product_available_sync --- raise '+
127
+ 'Exception(\'Stock Reservation entry does not exist for %d\' '+
128
+ '% sr_obj_id) --- Exception: Stock Reservation entry does '+
129
+ 'not exist for 1873208 --- ')
130
+ assert_equal('Exception', err_name)
131
+ assert_equal('50d4d0924c2bfc907f5dd976654a8c23d3449e79', fingerprint)
132
+ end
133
+
134
+ def test_fp_multi_err(fingerprinter)
135
+ err_name, fingerprint, essence, stack = fingerprinter.fingerprint_python(
136
+ 'Traceback (most recent call last): --- File '+
137
+ '"/srv/webapps/bigbasket.com/BigBasket/member/models.py", line 9860, '+
138
+ 'in _bulk_update_locality --- MemberAddressLocality.objects.'+
139
+ 'create(member_address_id=member_address_id, locality_id=locality.id) '+
140
+ '--- AttributeError: \'NoneType\' object has no attribute \'id\' '+
141
+ '--- Traceback (most recent call last): --- File '+
142
+ '"/srv/webapps/bigbasket.com/BigBasket/member/models.py", line 9860, '+
143
+ 'in _bulk_update_locality --- MemberAddressLocality.objects.'+
144
+ 'create(member_address_id=member_address_id, locality_id=locality.id) '+
145
+ '--- AttributeError: \'NoneType\' object has no attribute \'id\' --- ')
146
+ assert_equal('AttributeError', err_name)
147
+ assert_equal('a4602817afb0e58e9a3da77e4e512ac1b2b3fc42', fingerprint)
148
+ end
149
+
150
+ def test_fp_no_message(fingerprinter)
151
+ err_name, fingerprint, essence, stack = fingerprinter.fingerprint_python(
152
+ ': Locus: There are no orders which are open and mapped to send to '+
153
+ 'locus for Hub :Samalka , Slot Group : Delhi: D-S3 for order delivery '+
154
+ 'date 2018-04-29 Traceback (most recent call last): --- File '+
155
+ '"/srv/webapps/bigbasket.com/BigBasket/locus/management/commands/'+
156
+ 'locus_send_order_data.py", line 364, in send_batch --- '+
157
+ 'order_ids=order_ids) --- File "/srv/webapps/bigbasket.com/BigBasket/'+
158
+ 'locus/models.py", line 336, in create_batch_data --- '+
159
+ 'raise NoOrdersForBatchException --- NoOrdersForBatchException --- ')
160
+ assert_equal('NoOrdersForBatchException', err_name)
161
+ assert_equal('ad3a804eea4de5c0531b607a4f904ffd5a3ab9bb', fingerprint)
162
+ end
163
+
164
+ def test_fp_message_has_traceback(fingerprinter)
165
+ err_name, fingerprint, essence, stack = fingerprinter.fingerprint_python(
166
+ 'SENDING MAIL: Unable to send using this \'MAILGUN\' mailer settings '+
167
+ '{\'username\': \'postmaster@mg.bigbasket.com\', \'fail_silently\': '+
168
+ 'False, \'use_tls\': True, \'host\': \'smtp.mailgun.org\', '+
169
+ '\'password\': \'8723123123\', \'port\': 587} Traceback '+
170
+ '(most recent call last): --- File "/srv/webapps/bigbasket.com/'+
171
+ 'BigBasket/saul/utils.py", line 568, in send --- '+
172
+ 'connection.send_messages([message]) --- File "/srv/webapps/'+
173
+ 'bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/'+
174
+ 'site-packages/django/core/mail/backends/smtp.py", line 111, '+
175
+ 'in send_messages --- sent = self._send(message) --- File '+
176
+ '"/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/'+
177
+ 'python2.7/site-packages/django/core/mail/backends/smtp.py", line 125, '+
178
+ 'in _send --- message = email_message.message() --- File "/srv/'+
179
+ 'webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/'+
180
+ 'site-packages/django/core/mail/message.py", line 303, in message '+
181
+ '--- msg[\'Subject\'] = self.subject --- File "/srv/webapps/'+
182
+ 'bigbasket.com/virtualenvs/bigbasket1.11/local/lib/python2.7/'+
183
+ 'site-packages/django/core/mail/message.py", line 217, in __setitem__ '+
184
+ '--- name, val = forbid_multi_line_headers(name, val, '+
185
+ 'self.encoding) --- File "/srv/webapps/bigbasket.com/virtualenvs/'+
186
+ 'bigbasket1.11/local/lib/python2.7/site-packages/django/core/mail/'+
187
+ 'message.py", line 92, in forbid_multi_line_headers --- '+
188
+ 'raise BadHeaderError("Header values can\'t contain newlines (got %r '+
189
+ 'for header %r)" % (val, name)) --- BadHeaderError: Header values '+
190
+ 'can\'t contain newlines (got u\'Error in converting into small '+
191
+ 'order: 46132322, Traceback (most recent call last):\\n File '+
192
+ '"/srv/webapps/bigbasket.com/BigBasket/order/models.py", line 9297, '+
193
+ 'in check_and_move_small_order\\n ret_dict = self.change_hub('+
194
+ 'new_hub, self.slot.slot_date, new_slot, change_hub_flag='+
195
+ 'change_hub_flag)\\n File "/srv/webapps/bigbasket.com/BigBasket/order/'+
196
+ 'models.py", line 8678, in change_hub\\n slot=self.slot.slot_time)'+
197
+ '.restrict_orderpick_by_vanassign\\n File "/srv/webapps/bigbasket.com/'+
198
+ 'virtualenvs/bigbasket1.11/local/lib/python2.7/site-packages/django/db/'+
199
+ 'models/manager.py", line 85, in manager_method\\n return '+
200
+ 'getattr(self.get_queryset(), name)(*args, **kwargs)\\n File '+
201
+ '"/srv/webapps/bigbasket.com/virtualenvs/bigbasket1.11/local/lib/'+
202
+ 'python2.7/site-packages/django/db/models/query.py", line 379, in '+
203
+ 'get\\n self.model._meta.object_name\\nDoesNotExist: SlotHubCapacity '+
204
+ 'matching query does not exist.\\n\' for header u\'Subject\') --- ')
205
+ assert_equal('BadHeaderError', err_name)
206
+ assert_equal('c29f4da45781e7a534a14d741abc38f22df8791d', fingerprint)
207
+ end
208
+ end
@@ -0,0 +1,320 @@
1
+ #
2
+ # Copyright 2017 Agilx, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ require "helper"
17
+ require "fluent/plugin/filter_Apptuit.rb"
18
+ require "test/plugin/java_fingerprint_tests.rb"
19
+ require "test/plugin/node_fingerprint_tests.rb"
20
+ require "test/plugin/python_fingerprint_tests.rb"
21
+ require "fluent/plugin/fingerprinter.rb"
22
+
23
+ class ApptuitFilterTest < Test::Unit::TestCase
24
+ setup do
25
+ Fluent::Test.setup
26
+ end
27
+
28
+ def create_driver(conf)
29
+ Fluent::Test::Driver::Filter.new(Fluent::Plugin::ApptuitFilter).configure(conf)
30
+ end
31
+
32
+ python_conf = %[
33
+ lang python
34
+ ]
35
+ java_conf = %[
36
+ lang java
37
+ ]
38
+ nodejs_conf = %[
39
+ lang nodejs
40
+ ]
41
+
42
+ python_msg = 'Traceback (most recent call last):
43
+ File "./app.py", line 7, in <module>
44
+ from schema import schema
45
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/schema.py", line 60, in <module>
46
+ schema = graphene.Schema(query=Query, types=[Department, Employee, Role])
47
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/schema.py", line 62, in __init__
48
+ self.build_typemap()
49
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/schema.py", line 126, in build_typemap
50
+ initial_types, auto_camelcase=self.auto_camelcase, schema=self
51
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 80, in __init__
52
+ super(TypeMap, self).__init__(types)
53
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/typemap.py", line 28, in __init__
54
+ self.update(reduce(self.reducer, types, OrderedDict())) # type: ignore
55
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 88, in reducer
56
+ return self.graphene_reducer(map, type)
57
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 117, in graphene_reducer
58
+ return GraphQLTypeMap.reducer(map, internal_type)
59
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/typemap.py", line 106, in reducer
60
+ field_map = type.fields
61
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/pyutils/cached_property.py", line 22, in __get__
62
+ value = obj.__dict__[self.func.__name__] = self.func(obj)
63
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py", line 221, in fields
64
+ return define_field_map(self, self._fields)
65
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py", line 235, in define_field_map
66
+ field_map = field_map()
67
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 274, in construct_fields_for_type
68
+ map = self.reducer(map, field.type)
69
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 88, in reducer
70
+ return self.graphene_reducer(map, type)
71
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 117, in graphene_reducer
72
+ return GraphQLTypeMap.reducer(map, internal_type)
73
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/typemap.py", line 106, in reducer
74
+ field_map = type.fields
75
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/pyutils/cached_property.py", line 22, in __get__
76
+ value = obj.__dict__[self.func.__name__] = self.func(obj)
77
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py", line 221, in fields
78
+ return define_field_map(self, self._fields)
79
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py", line 235, in define_field_map
80
+ field_map = field_map()
81
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 274, in construct_fields_for_type
82
+ map = self.reducer(map, field.type)
83
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 88, in reducer
84
+ return self.graphene_reducer(map, type)
85
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 93, in graphene_reducer
86
+ return self.reducer(map, type.of_type)
87
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 88, in reducer
88
+ return self.graphene_reducer(map, type)
89
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 93, in graphene_reducer
90
+ return self.reducer(map, type.of_type)
91
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 88, in reducer
92
+ return self.graphene_reducer(map, type)
93
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 117, in graphene_reducer
94
+ return GraphQLTypeMap.reducer(map, internal_type)
95
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/typemap.py", line 106, in reducer
96
+ field_map = type.fields
97
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/pyutils/cached_property.py", line 22, in __get__
98
+ value = obj.__dict__[self.func.__name__] = self.func(obj)
99
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py", line 221, in fields
100
+ return define_field_map(self, self._fields)
101
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py", line 235, in define_field_map
102
+ field_map = field_map()
103
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 274, in construct_fields_for_type
104
+ map = self.reducer(map, field.type)
105
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 88, in reducer
106
+ return self.graphene_reducer(map, type)
107
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 117, in graphene_reducer
108
+ return GraphQLTypeMap.reducer(map, internal_type)
109
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/typemap.py", line 106, in reducer
110
+ field_map = type.fields
111
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/pyutils/cached_property.py", line 22, in __get__
112
+ value = obj.__dict__[self.func.__name__] = self.func(obj)
113
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py", line 221, in fields
114
+ return define_field_map(self, self._fields)
115
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py", line 235, in define_field_map
116
+ field_map = field_map()
117
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 274, in construct_fields_for_type
118
+ map = self.reducer(map, field.type)
119
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 88, in reducer
120
+ return self.graphene_reducer(map, type)
121
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 117, in graphene_reducer
122
+ return GraphQLTypeMap.reducer(map, internal_type)
123
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/typemap.py", line 106, in reducer
124
+ field_map = type.fields
125
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/pyutils/cached_property.py", line 22, in __get__
126
+ value = obj.__dict__[self.func.__name__] = self.func(obj)
127
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py", line 221, in fields
128
+ return define_field_map(self, self._fields)
129
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py", line 235, in define_field_map
130
+ field_map = field_map()
131
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 274, in construct_fields_for_type
132
+ map = self.reducer(map, field.type)
133
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 88, in reducer
134
+ return self.graphene_reducer(map, type)
135
+ File "/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py", line 99, in graphene_reducer
136
+ ).format(_type.graphene_type, type)
137
+ AssertionError: Found different types with the same name in the schema: EmployeeConnection, EmployeeConnection'
138
+
139
+ python_sys_msg = "Traceback (most recent call last):#012File \"./app.py\", line 7, in <module>#012 from schema import schema#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/schema.py\", line 60, in <module>#012 schema = graphene.Schema(query=Query, types=[Department, Employee, Role])#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/schema.py\", line 62, in __init__#012 self.build_typemap()#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/schema.py\", line 126, in build_typemap#012 initial_types, auto_camelcase=self.auto_camelcase, schema=self#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 80, in __init__#012 super(TypeMap, self).__init__(types)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/typemap.py\", line 28, in __init__#012 self.update(reduce(self.reducer, types, OrderedDict())) # type: ignore#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 88, in reducer#012 return self.graphene_reducer(map, type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 117, in graphene_reducer#012 return GraphQLTypeMap.reducer(map, internal_type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/typemap.py\", line 106, in reducer#012 field_map = type.fields#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/pyutils/cached_property.py\", line 22, in __get__#012 value = obj.__dict__[self.func.__name__] = self.func(obj)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py\", line 221, in fields#012 return define_field_map(self, self._fields)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py\", line 235, in define_field_map#012 field_map = field_map()#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 274, in construct_fields_for_type#012 map = self.reducer(map, field.type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 88, in reducer#012 return self.graphene_reducer(map, type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 117, in graphene_reducer#012 return GraphQLTypeMap.reducer(map, internal_type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/typemap.py\", line 106, in reducer#012 field_map = type.fields#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/pyutils/cached_property.py\", line 22, in __get__#012 value = obj.__dict__[self.func.__name__] = self.func(obj)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py\", line 221, in fields#012 return define_field_map(self, self._fields)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py\", line 235, in define_field_map#012 field_map = field_map()#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 274, in construct_fields_for_type#012 map = self.reducer(map, field.type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 88, in reducer#012 return self.graphene_reducer(map, type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 93, in graphene_reducer#012 return self.reducer(map, type.of_type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 88, in reducer#012 return self.graphene_reducer(map, type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 93, in graphene_reducer#012 return self.reducer(map, type.of_type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 88, in reducer#012 return self.graphene_reducer(map, type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 117, in graphene_reducer#012 return GraphQLTypeMap.reducer(map, internal_type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/typemap.py\", line 106, in reducer#012 field_map = type.fields#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/pyutils/cached_property.py\", line 22, in __get__#012 value = obj.__dict__[self.func.__name__] = self.func(obj)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py\", line 221, in fields#012 return define_field_map(self, self._fields)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py\", line 235, in define_field_map#012 field_map = field_map()#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 274, in construct_fields_for_type#012 map = self.reducer(map, field.type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 88, in reducer#012 return self.graphene_reducer(map, type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 117, in graphene_reducer#012 return GraphQLTypeMap.reducer(map, internal_type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/typemap.py\", line 106, in reducer#012 field_map = type.fields#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/pyutils/cached_property.py\", line 22, in __get__#012 value = obj.__dict__[self.func.__name__] = self.func(obj)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py\", line 221, in fields#012 return define_field_map(self, self._fields)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py\", line 235, in define_field_map#012 field_map = field_map()#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 274, in construct_fields_for_type#012 map = self.reducer(map, field.type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 88, in reducer#012 return self.graphene_reducer(map, type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 117, in graphene_reducer#012 return GraphQLTypeMap.reducer(map, internal_type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/typemap.py\", line 106, in reducer#012 field_map = type.fields#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/pyutils/cached_property.py\", line 22, in __get__#012 value = obj.__dict__[self.func.__name__] = self.func(obj)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py\", line 221, in fields#012 return define_field_map(self, self._fields)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphql/type/definition.py\", line 235, in define_field_map#012 field_map = field_map()#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 274, in construct_fields_for_type#012 map = self.reducer(map, field.type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 88, in reducer#012 return self.graphene_reducer(map, type)#012File \"/home/joseph/Documents/graphene-sqlalchemy/examples/flask_sqlalchemy/env/lib/python3.6/site-packages/graphene/types/typemap.py\", line 99, in graphene_reducer#012 ).format(_type.graphene_type, type)#012AssertionError: Found different types with the same name in the schema: EmployeeConnection, EmployeeConnection"
140
+
141
+ java_msg = 'SEVERE [http-nio-8080-exec-10] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [Testing] in context with path [/test] threw exception [GET method is not supported.] with root cause
142
+ javax.servlet.ServletException: GET method is not supported.
143
+ at TestingServlet.doGet(TestingServlet.java:18)
144
+ at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
145
+ at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
146
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
147
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
148
+ at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
149
+ at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
150
+ at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
151
+ at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
152
+ at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
153
+ at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
154
+ at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
155
+ at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
156
+ at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
157
+ at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
158
+ at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
159
+ at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
160
+ at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
161
+ at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
162
+ at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
163
+ at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
164
+ at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
165
+ at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
166
+ at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
167
+ at java.base/java.lang.Thread.run(Thread.java:844)'
168
+
169
+ java_sys_msg = 'SEVERE [http-nio-8080-exec-10] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [Testing] in context with path [/test] threw exception [GET method is not supported.] with root cause#012 javax.servlet.ServletException: GET method is not supported.#012#011at TestingServlet.doGet(TestingServlet.java:18)#012#011at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)#012#011at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)#012#011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)#012#011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)#012#011at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)#012#011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)#012#011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)#012#011at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)#012#011at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)#012#011at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)#012#011at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)#012#011at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)#012#011at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)#012#011at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)#012#011at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)#012#011at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)#012#011at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)#012#011at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)#012#011at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)#012#011at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)#012#011at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)#012#011at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)#012#011at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)#012#011at java.base/java.lang.Thread.run(Thread.java:844)'
170
+
171
+ nodejs_msg = 'Error: Something unexpected has occurred.
172
+ at main (c:\Users\Me\Documents\MyApp\app.js:9:15)
173
+ at Object. (c:\Users\Me\Documents\MyApp\app.js:17:1)
174
+ at Module._compile (module.js:460:26)
175
+ at Object.Module._extensions..js (module.js:478:10)
176
+ at Module.load (module.js:355:32)
177
+ at Function.Module._load (module.js:310:12)
178
+ at Function.Module.runMain (module.js:501:10)
179
+ at startup (node.js:129:16)
180
+ at node.js:814:3'
181
+
182
+ nodejs_sys_msg = "Error: Something unexpected has occurred.#012 at main (c:\\Users\\Me\\Documents\\MyApp\\app.js:9:15)#012 at Object. (c:\\Users\\Me\\Documents\\MyApp\\app.js:17:1)#012 at Module._compile (module.js:460:26)#012 at Object.Module._extensions..js (module.js:478:10)#012 at Module.load (module.js:355:32)#012 at Function.Module._load (module.js:310:12)#012 at Function.Module.runMain (module.js:501:10)#012 at startup (node.js:129:16)#012 at node.js:814:3"
183
+
184
+ nodejs_error_msg = "Something unexpected has occurred.#012 at main (c:\\Users\\Me\\Documents\\MyApp\\app.js:9:15)#012 at Object. (c:\\Users\\Me\\Documents\\MyApp\\app.js:17:1)#012 at Module._compile (module.js:460:26)#012 at Object.Module._extensions..js (module.js:478:10)#012 at Module.load (module.js:355:32)#012 at Function.Module._load (module.js:310:12)#012 at Function.Module.runMain (module.js:501:10)#012 at startup (node.js:129:16)#012 at node.js:814:3"
185
+
186
+
187
+ test "filter" do
188
+ d = create_driver(python_conf)
189
+ time = event_time
190
+ d.run do
191
+ d.feed("filter.python", time, {'message' => python_msg})
192
+ end
193
+ assert_equal('6c4a36dfca6b751f16a4065d61ec0de3f96e7eb8', d.filtered_records[0]['fingerprint'])
194
+ d = create_driver(python_conf+"syslog true")
195
+ time = event_time
196
+ d.run do
197
+ d.feed("filter.python",time, {'message' => python_sys_msg})
198
+ end
199
+ assert_equal('6c4a36dfca6b751f16a4065d61ec0de3f96e7eb8', d.filtered_records[0]['fingerprint'])
200
+ d = create_driver(python_conf+"error_msg_tag error_message")
201
+ time = event_time
202
+ d.run do
203
+ d.feed("filter.python",time, {'error_message' => python_msg})
204
+ end
205
+ assert_equal('6c4a36dfca6b751f16a4065d61ec0de3f96e7eb8', d.filtered_records[0]['fingerprint'])
206
+ d = create_driver(python_conf+"error_msg_tag error_message")
207
+ time = event_time
208
+ d.run do
209
+ d.feed("filter.python",time, {'error_message' => python_sys_msg})
210
+ end
211
+ assert_equal(nil, d.filtered_records[0]['fingerprint'])
212
+ d = create_driver(python_conf+"syslog true\n"+"error_msg_tag error_message")
213
+ time = event_time
214
+ d.run do
215
+ d.feed("filter.python",time, {'error_message' => python_sys_msg})
216
+ end
217
+ assert_equal('6c4a36dfca6b751f16a4065d61ec0de3f96e7eb8', d.filtered_records[0]['fingerprint'])
218
+ d = create_driver(java_conf)
219
+ time = event_time
220
+ d.run do
221
+ d.feed("filter.java", time, {'message' => java_msg})
222
+ end
223
+ assert_equal('35005154c55de5f08021c04959646a00063a8a81', d.filtered_records[0]['fingerprint'])
224
+ d = create_driver(java_conf+"syslog true")
225
+ time = event_time
226
+ d.run do
227
+ d.feed("filter.java", time, {'message' => java_sys_msg})
228
+ end
229
+ assert_equal('35005154c55de5f08021c04959646a00063a8a81', d.filtered_records[0]['fingerprint'])
230
+ d = create_driver(java_conf+"error_msg_tag error_message")
231
+ time = event_time
232
+ d.run do
233
+ d.feed("filter.java", time, {'error_message' => java_msg})
234
+ end
235
+ assert_equal('35005154c55de5f08021c04959646a00063a8a81', d.filtered_records[0]['fingerprint'])
236
+ d = create_driver(java_conf+"syslog true\n"+"error_msg_tag error_message")
237
+ time = event_time
238
+ d.run do
239
+ d.feed("filter.java", time, {'error_message' => java_sys_msg})
240
+ end
241
+ assert_equal('35005154c55de5f08021c04959646a00063a8a81', d.filtered_records[0]['fingerprint'])
242
+ d = create_driver(java_conf+"error_msg_tag error_message")
243
+ time = event_time
244
+ d.run do
245
+ d.feed("filter.java", time, {'error_message' => java_sys_msg})
246
+ end
247
+ assert_equal(nil, d.filtered_records[0]['fingerprint'])
248
+ d = create_driver(nodejs_conf)
249
+ time = event_time
250
+ d.run do
251
+ d.feed("filter.nodejs", time, {'message' => nodejs_msg})
252
+ end
253
+ assert_equal('24f271892eeaac14506e7ab563da0f03a19b0d84', d.filtered_records[0]['fingerprint'])
254
+ d = create_driver(nodejs_conf+"syslog true")
255
+ time = event_time
256
+ d.run do
257
+ d.feed("filter.nodejs", time, {'message' => nodejs_sys_msg})
258
+ end
259
+ assert_equal('24f271892eeaac14506e7ab563da0f03a19b0d84', d.filtered_records[0]['fingerprint'])
260
+ d = create_driver(nodejs_conf+"error_msg_tag error_message")
261
+ time = event_time
262
+ d.run do
263
+ d.feed("filter.nodejs", time, {'error_message' => nodejs_msg})
264
+ end
265
+ assert_equal('24f271892eeaac14506e7ab563da0f03a19b0d84', d.filtered_records[0]['fingerprint'])
266
+ d = create_driver(nodejs_conf+"syslog true\n"+"error_msg_tag error_message")
267
+ time = event_time
268
+ d.run do
269
+ d.feed("filter.nodejs", time, {'error_message' => nodejs_sys_msg})
270
+ end
271
+ assert_equal('24f271892eeaac14506e7ab563da0f03a19b0d84', d.filtered_records[0]['fingerprint'])
272
+ d = create_driver(nodejs_conf+"error_msg_tag error_message")
273
+ time = event_time
274
+ d.run do
275
+ d.feed("filter.nodejs", time, {'error_message' => nodejs_error_msg})
276
+ end
277
+ assert_equal(nil, d.filtered_records[0]['fingerprint'])
278
+ end
279
+
280
+ #Nodejs fingerprint tests
281
+ testing_object = NodeFingerprintTests.new()
282
+ fingerprint_object = FingerPrinter.new()
283
+
284
+ testing_object.test_fp_not_a_stacktrace(fingerprint_object)
285
+ testing_object.test_fp_basic(fingerprint_object)
286
+ testing_object.test_fp_short(fingerprint_object)
287
+ testing_object.test_fp_mulitline_message(fingerprint_object)
288
+ testing_object.test_fp_json_wrapped(fingerprint_object)
289
+ testing_object.test_fp_json_with_at(fingerprint_object)
290
+
291
+ #Python fingerprint tests
292
+ testing_object = PythonFingerprintTests.new()
293
+ fingerprint_object = FingerPrinter.new()
294
+
295
+ testing_object.test_fp_tmp(fingerprint_object)
296
+ testing_object.test_fp_colon_in_code(fingerprint_object)
297
+ testing_object.test_fp_colon_in_code1(fingerprint_object)
298
+ testing_object.test_fp_one_err(fingerprint_object)
299
+ testing_object.test_fp_multi_err(fingerprint_object)
300
+ testing_object.test_fp_no_message(fingerprint_object)
301
+ testing_object.test_fp_message_has_traceback(fingerprint_object)
302
+
303
+ #Java fingerprint tests
304
+ testing_object = JavaFingerprintTests.new()
305
+ fingerprint_object = FingerPrinter.new()
306
+
307
+ testing_object.test_baseline(fingerprint_object)
308
+ testing_object.test_nested_basic(fingerprint_object)
309
+ testing_object.test_fill_nostacktrace_nested_exception(fingerprint_object)
310
+ testing_object.test_otsd_exception(fingerprint_object)
311
+ testing_object.test_old_nesting_sax(fingerprint_object)
312
+ testing_object.test_old_nesting_jaxb(fingerprint_object)
313
+ testing_object.test_linenumbers_ignored(fingerprint_object)
314
+ testing_object.test_circular_ref(fingerprint_object)
315
+ testing_object.test_exception_in_dynamic_proxy(fingerprint_object)
316
+ testing_object.test_reflection_inflation(fingerprint_object)
317
+ testing_object.test_nested_non_nested(fingerprint_object)
318
+ testing_object.test_multi_line_message(fingerprint_object)
319
+ testing_object.test_heuristic_stacktrace_search(fingerprint_object)
320
+ end