apptuit-fluent-plugin 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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