stoobly-agent 1.8.3__py3-none-any.whl → 1.8.5__py3-none-any.whl

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.
Files changed (55) hide show
  1. stoobly_agent/__init__.py +1 -1
  2. stoobly_agent/app/api/headers_controller.py +1 -1
  3. stoobly_agent/app/api/query_params_controller.py +4 -4
  4. stoobly_agent/app/cli/snapshot_cli.py +57 -0
  5. stoobly_agent/app/cli/types/snapshot_migration.py +61 -0
  6. stoobly_agent/app/models/adapters/orm/request/mitmproxy_adapter.py +1 -1
  7. stoobly_agent/app/models/adapters/python/request/__init__.py +2 -2
  8. stoobly_agent/app/models/adapters/python/request/mitmproxy_adapter.py +1 -1
  9. stoobly_agent/app/models/adapters/python/request/raw_adapter.py +2 -2
  10. stoobly_agent/app/models/factories/resource/local_db/header_adapter.py +28 -8
  11. stoobly_agent/app/models/factories/resource/local_db/helpers/log.py +7 -0
  12. stoobly_agent/app/models/factories/resource/local_db/helpers/log_event.py +10 -0
  13. stoobly_agent/app/models/factories/resource/local_db/helpers/request_snapshot.py +20 -0
  14. stoobly_agent/app/models/factories/resource/local_db/helpers/scenario_snapshot.py +8 -1
  15. stoobly_agent/app/models/factories/resource/local_db/helpers/snapshot.py +1 -1
  16. stoobly_agent/app/models/factories/resource/local_db/local_db_adapter.py +3 -0
  17. stoobly_agent/app/models/factories/resource/local_db/query_param_adapter.py +2 -2
  18. stoobly_agent/app/models/factories/resource/local_db/request_adapter.py +22 -3
  19. stoobly_agent/app/models/helpers/apply.py +5 -4
  20. stoobly_agent/app/models/helpers/create_request_params_service.py +4 -2
  21. stoobly_agent/app/proxy/intercept_handler.py +6 -2
  22. stoobly_agent/app/proxy/record/join_request_service.py +22 -10
  23. stoobly_agent/app/proxy/record/proxy_request.py +9 -0
  24. stoobly_agent/app/proxy/record/request_string.py +4 -1
  25. stoobly_agent/app/proxy/record/upload_request_service.py +7 -5
  26. stoobly_agent/app/proxy/test/helpers/upload_test_service.py +1 -1
  27. stoobly_agent/config/constants/lifecycle_hooks.py +1 -0
  28. stoobly_agent/lib/orm/transformers/orm_to_request_transformer.py +74 -2
  29. stoobly_agent/public/13-es2015.6d3a4fd76d46bfa5f200.js +1 -0
  30. stoobly_agent/public/13-es5.6d3a4fd76d46bfa5f200.js +1 -0
  31. stoobly_agent/public/{18-es2015.503207073756a9c8211a.js → 18-es2015.d07dd29def7e2574c5b7.js} +1 -1
  32. stoobly_agent/public/{18-es5.503207073756a9c8211a.js → 18-es5.d07dd29def7e2574c5b7.js} +1 -1
  33. stoobly_agent/public/35-es2015.4ffe6f7a196ed1a87fc7.js +1 -0
  34. stoobly_agent/public/35-es5.4ffe6f7a196ed1a87fc7.js +1 -0
  35. stoobly_agent/public/index.html +1 -1
  36. stoobly_agent/public/{main-es2015.d682619f3d6d53d64c6a.js → main-es2015.ce00115b0520fa030f01.js} +1 -1
  37. stoobly_agent/public/{main-es5.d682619f3d6d53d64c6a.js → main-es5.ce00115b0520fa030f01.js} +1 -1
  38. stoobly_agent/public/runtime-es2015.b13c22b834b51724d30a.js +1 -0
  39. stoobly_agent/public/runtime-es5.b13c22b834b51724d30a.js +1 -0
  40. stoobly_agent/test/app/cli/scenario/scenario_snapshot_test.py +1 -1
  41. stoobly_agent/test/app/cli/snapshot/lifecycle_hooks_migrate.py +10 -0
  42. stoobly_agent/test/app/cli/snapshot/snapshot_migrate_test.py +181 -0
  43. stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION +1 -1
  44. stoobly_agent/test/app/proxy/replay/trace_context_test.py +36 -3
  45. {stoobly_agent-1.8.3.dist-info → stoobly_agent-1.8.5.dist-info}/METADATA +1 -1
  46. {stoobly_agent-1.8.3.dist-info → stoobly_agent-1.8.5.dist-info}/RECORD +49 -46
  47. stoobly_agent/public/13-es2015.343b0261a8b3b3f4a1fc.js +0 -1
  48. stoobly_agent/public/13-es5.343b0261a8b3b3f4a1fc.js +0 -1
  49. stoobly_agent/public/35-es2015.a23419c9c7bff162a8e3.js +0 -1
  50. stoobly_agent/public/35-es5.a23419c9c7bff162a8e3.js +0 -1
  51. stoobly_agent/public/runtime-es2015.7130ec4068d875dc38bd.js +0 -1
  52. stoobly_agent/public/runtime-es5.7130ec4068d875dc38bd.js +0 -1
  53. {stoobly_agent-1.8.3.dist-info → stoobly_agent-1.8.5.dist-info}/LICENSE +0 -0
  54. {stoobly_agent-1.8.3.dist-info → stoobly_agent-1.8.5.dist-info}/WHEEL +0 -0
  55. {stoobly_agent-1.8.3.dist-info → stoobly_agent-1.8.5.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1 @@
1
+ !function(e){function r(r){for(var a,f,o=r[0],d=r[1],b=r[2],i=0,l=[];i<o.length;i++)f=o[i],Object.prototype.hasOwnProperty.call(n,f)&&n[f]&&l.push(n[f][0]),n[f]=0;for(a in d)Object.prototype.hasOwnProperty.call(d,a)&&(e[a]=d[a]);for(u&&u(r);l.length;)l.shift()();return c.push.apply(c,b||[]),t()}function t(){for(var e,r=0;r<c.length;r++){for(var t=c[r],a=!0,o=1;o<t.length;o++)0!==n[t[o]]&&(a=!1);a&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var a={},n={11:0},c=[];function f(r){if(a[r])return a[r].exports;var t=a[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.e=function(e){var r=[],t=n[e];if(0!==t)if(t)r.push(t[2]);else{var a=new Promise(function(r,a){t=n[e]=[r,a]});r.push(t[2]=a);var c,o=document.createElement("script");o.charset="utf-8",o.timeout=120,f.nc&&o.setAttribute("nonce",f.nc),o.src=function(e){return f.p+""+({3:"common"}[e]||e)+"-es2015."+{0:"c7c5a6d51b98cb85b9fc",1:"bb4492eeabe1fe937ada",2:"51eb8544ea9a21f2874c",3:"388805227aa99c527fba",4:"f8ac5475bf103969b2d2",5:"90ea7bd4439d9749e052",6:"5fb726c0555664300974",7:"ba9f789e186a8e3962d3",8:"b901639e2aeff1358c3d",9:"1d75413af5d96b4ff1e5",10:"56da22458086513ba0c7",12:"be58ed0ef449008b932e",13:"6d3a4fd76d46bfa5f200",14:"b6619d7742671d2a37fb",15:"d8855701408b0e1d7a3e",16:"98fa59c2c96d2caac3c3",17:"7f60b56d1fd66d4d5544",18:"d07dd29def7e2574c5b7",19:"e5acb2c1e0e91717efc2",20:"90544c488f1f0900bab4",21:"63ed4e6b242fbc047bd6",22:"1e96ef651f96d51191e2",23:"6d3052555b4fac38f16d",28:"a2bf42f38e4dd771ccea",29:"18b515f07c88753c7eb6",30:"d4d3dc4101400cadf3f3",31:"e3ea815f75c19c217b7d",32:"57553995bff0ae518501",33:"da5ba1e5baa164921198",34:"87acbb95cfb824650157",35:"4ffe6f7a196ed1a87fc7",36:"e3a104020eeec02cb8c4",37:"3b472e6cf303201bbf2c",38:"39dbf43d46cdc94f78c6",39:"e5475ea4fb6ec5c60741",40:"47b2873a8439717af6a7",41:"69f2771002745c066976",42:"b590b92ede890155dcd6",43:"ad1d956bffba561ba64c",44:"3ef2c17996ed5be95ced",45:"3d65d27e0a7085e96356",46:"e4f0a5b127eae13c27c0",47:"c7d45334a70131f133b5"}[e]+".js"}(e);var d=new Error;c=function(r){o.onerror=o.onload=null,clearTimeout(b);var t=n[e];if(0!==t){if(t){var a=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;d.message="Loading chunk "+e+" failed.\n("+a+": "+c+")",d.name="ChunkLoadError",d.type=a,d.request=c,t[1](d)}n[e]=void 0}};var b=setTimeout(function(){c({type:"timeout",target:o})},12e4);o.onerror=o.onload=c,document.head.appendChild(o)}return Promise.all(r)},f.m=e,f.c=a,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var a in e)f.d(t,a,(function(r){return e[r]}).bind(null,a));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="",f.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],d=o.push.bind(o);o.push=r,o=o.slice();for(var b=0;b<o.length;b++)r(o[b]);var u=d;t()}([]);
@@ -0,0 +1 @@
1
+ !function(e){function r(r){for(var a,f,o=r[0],d=r[1],b=r[2],i=0,l=[];i<o.length;i++)f=o[i],Object.prototype.hasOwnProperty.call(n,f)&&n[f]&&l.push(n[f][0]),n[f]=0;for(a in d)Object.prototype.hasOwnProperty.call(d,a)&&(e[a]=d[a]);for(u&&u(r);l.length;)l.shift()();return c.push.apply(c,b||[]),t()}function t(){for(var e,r=0;r<c.length;r++){for(var t=c[r],a=!0,o=1;o<t.length;o++)0!==n[t[o]]&&(a=!1);a&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var a={},n={11:0},c=[];function f(r){if(a[r])return a[r].exports;var t=a[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.e=function(e){var r=[],t=n[e];if(0!==t)if(t)r.push(t[2]);else{var a=new Promise(function(r,a){t=n[e]=[r,a]});r.push(t[2]=a);var c,o=document.createElement("script");o.charset="utf-8",o.timeout=120,f.nc&&o.setAttribute("nonce",f.nc),o.src=function(e){return f.p+""+({3:"common"}[e]||e)+"-es5."+{0:"c7c5a6d51b98cb85b9fc",1:"bb4492eeabe1fe937ada",2:"51eb8544ea9a21f2874c",3:"388805227aa99c527fba",4:"f8ac5475bf103969b2d2",5:"90ea7bd4439d9749e052",6:"5fb726c0555664300974",7:"ba9f789e186a8e3962d3",8:"b901639e2aeff1358c3d",9:"1d75413af5d96b4ff1e5",10:"56da22458086513ba0c7",12:"be58ed0ef449008b932e",13:"6d3a4fd76d46bfa5f200",14:"b6619d7742671d2a37fb",15:"d8855701408b0e1d7a3e",16:"98fa59c2c96d2caac3c3",17:"7f60b56d1fd66d4d5544",18:"d07dd29def7e2574c5b7",19:"e5acb2c1e0e91717efc2",20:"90544c488f1f0900bab4",21:"63ed4e6b242fbc047bd6",22:"1e96ef651f96d51191e2",23:"6d3052555b4fac38f16d",28:"a2bf42f38e4dd771ccea",29:"18b515f07c88753c7eb6",30:"d4d3dc4101400cadf3f3",31:"e3ea815f75c19c217b7d",32:"57553995bff0ae518501",33:"da5ba1e5baa164921198",34:"87acbb95cfb824650157",35:"4ffe6f7a196ed1a87fc7",36:"e3a104020eeec02cb8c4",37:"3b472e6cf303201bbf2c",38:"39dbf43d46cdc94f78c6",39:"e5475ea4fb6ec5c60741",40:"47b2873a8439717af6a7",41:"69f2771002745c066976",42:"b590b92ede890155dcd6",43:"ad1d956bffba561ba64c",44:"3ef2c17996ed5be95ced",45:"3d65d27e0a7085e96356",46:"e4f0a5b127eae13c27c0",47:"c7d45334a70131f133b5"}[e]+".js"}(e);var d=new Error;c=function(r){o.onerror=o.onload=null,clearTimeout(b);var t=n[e];if(0!==t){if(t){var a=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;d.message="Loading chunk "+e+" failed.\n("+a+": "+c+")",d.name="ChunkLoadError",d.type=a,d.request=c,t[1](d)}n[e]=void 0}};var b=setTimeout(function(){c({type:"timeout",target:o})},12e4);o.onerror=o.onload=c,document.head.appendChild(o)}return Promise.all(r)},f.m=e,f.c=a,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var a in e)f.d(t,a,(function(r){return e[r]}).bind(null,a));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="",f.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],d=o.push.bind(o);o.push=r,o=o.slice();for(var b=0;b<o.length;b++)r(o[b]);var u=d;t()}([]);
@@ -17,7 +17,7 @@ from stoobly_agent.lib.orm.scenario import Scenario
17
17
  def runner():
18
18
  return CliRunner()
19
19
 
20
- class TestRequest():
20
+ class TestScenario():
21
21
  @pytest.fixture(scope='class', autouse=True)
22
22
  def settings(self):
23
23
  return reset()
@@ -0,0 +1,10 @@
1
+ from stoobly_agent.app.cli.types.snapshot_migration import SnapshotMigration
2
+
3
+ def handle_before_migrate(snapshot_migration: SnapshotMigration):
4
+ request = snapshot_migration.request
5
+ response = snapshot_migration.response
6
+
7
+ request.headers['X-Test'] = '1'
8
+ response.content = b'Test'
9
+
10
+ snapshot_migration.save()
@@ -0,0 +1,181 @@
1
+ import os
2
+ import pdb
3
+ import pytest
4
+ import time
5
+
6
+ from click.testing import CliRunner
7
+
8
+ from stoobly_agent.app.models.adapters.raw_http_request_adapter import RawHttpRequestAdapter
9
+ from stoobly_agent.app.models.adapters.raw_http_response_adapter import RawHttpResponseAdapter
10
+ from stoobly_agent.app.models.factories.resource.local_db.helpers.log import Log
11
+ from stoobly_agent.app.models.factories.resource.local_db.helpers.log_event import LogEvent
12
+ from stoobly_agent.cli import record, request, scenario, snapshot
13
+ from stoobly_agent.lib.orm.request import Request
14
+ from stoobly_agent.lib.orm.scenario import Scenario
15
+ from stoobly_agent.test.test_helper import DETERMINISTIC_GET_REQUEST_URL, reset
16
+
17
+ @pytest.fixture(scope='module')
18
+ def runner():
19
+ return CliRunner()
20
+
21
+ class TestMigrate():
22
+ @pytest.fixture(scope='class', autouse=True)
23
+ def settings(self):
24
+ return reset()
25
+
26
+ class TestWithoutScenarioKey():
27
+
28
+ @pytest.fixture(scope='class')
29
+ def recorded_request(self, runner: CliRunner):
30
+ record_result = runner.invoke(record, [DETERMINISTIC_GET_REQUEST_URL])
31
+ assert record_result.exit_code == 0
32
+ return Request.last()
33
+
34
+ @pytest.fixture(autouse=True, scope='class')
35
+ def put_event(self, runner: CliRunner, recorded_request: Request):
36
+ snapshot_result = runner.invoke(request, ['snapshot', recorded_request.key()])
37
+ assert snapshot_result.exit_code == 0
38
+
39
+ log = Log()
40
+ events = log.events
41
+ return events[len(events) - 1]
42
+
43
+ @pytest.fixture(autouse=True, scope='class')
44
+ def migrated_event(self, runner: CliRunner, put_event: LogEvent):
45
+ time.sleep(1) # Simulate update at different time
46
+
47
+ current_dir = os.path.dirname(os.path.abspath(__file__))
48
+ lifecycle_hooks_path = os.path.join(current_dir, 'lifecycle_hooks_migrate.py')
49
+ migrate_result = runner.invoke(snapshot, ['migrate', lifecycle_hooks_path], catch_exceptions=False)
50
+ assert migrate_result.exit_code == 0
51
+
52
+ log = Log()
53
+ events = log.events
54
+ assert len(events) == 2
55
+ assert events[0].uuid == put_event.uuid
56
+ return events[1]
57
+
58
+ @pytest.fixture(scope='class')
59
+ def migrated_request(self, runner: CliRunner, recorded_request: Request):
60
+ apply_result = runner.invoke(snapshot, ['apply'], catch_exceptions=False)
61
+ assert apply_result.exit_code == 0
62
+
63
+ request = Request.find(recorded_request.id)
64
+ assert request != None
65
+
66
+ return request
67
+
68
+ def test_it_has_different_uuid(self, migrated_event: LogEvent, put_event: LogEvent):
69
+ assert migrated_event.uuid != put_event.uuid
70
+
71
+ def test_it_has_same_action(self, migrated_event: LogEvent, put_event: LogEvent):
72
+ assert migrated_event.action == put_event.action
73
+
74
+ def test_it_has_same_resource(self, migrated_event: LogEvent, put_event: LogEvent):
75
+ assert migrated_event.resource == put_event.resource
76
+
77
+ def test_it_has_same_resource_uuid(self, migrated_event: LogEvent, put_event: LogEvent):
78
+ assert migrated_event.resource_uuid == put_event.resource_uuid
79
+
80
+ def test_it_has_different_created_at(self, migrated_event: LogEvent, put_event: LogEvent):
81
+ assert migrated_event.created_at != put_event.created_at
82
+
83
+ def test_it_migrates_request(self, migrated_request: Request):
84
+ python_request = RawHttpRequestAdapter(migrated_request.raw).to_request()
85
+ assert python_request.headers['X-Test'] == '1'
86
+
87
+ def test_it_migrates_response(self, migrated_request: Request):
88
+ python_response = RawHttpResponseAdapter(migrated_request.response.raw).to_response()
89
+ assert python_response.content == b'Test'
90
+
91
+ class TestWithScenarioKey():
92
+
93
+ @pytest.fixture(scope='class')
94
+ def created_scenario(self, runner: CliRunner):
95
+ create_result = runner.invoke(scenario, ['create', 'test'])
96
+ assert create_result.exit_code == 0
97
+ return Scenario.last()
98
+
99
+ @pytest.fixture(scope='class')
100
+ def recorded_request_one(self, runner: CliRunner, created_scenario: Scenario):
101
+ record_result = runner.invoke(record, ['--scenario-key', created_scenario.key(), DETERMINISTIC_GET_REQUEST_URL])
102
+ assert record_result.exit_code == 0
103
+ return Request.last()
104
+
105
+ @pytest.fixture(scope='class')
106
+ def recorded_request_two(self, runner: CliRunner):
107
+ record_result = runner.invoke(record, [DETERMINISTIC_GET_REQUEST_URL])
108
+ assert record_result.exit_code == 0
109
+ return Request.last()
110
+
111
+ @pytest.fixture(autouse=True, scope='class')
112
+ def put_event(self, runner: CliRunner, recorded_request_one: Request):
113
+ snapshot_result = runner.invoke(scenario, ['snapshot', recorded_request_one.scenario.key()])
114
+ assert snapshot_result.exit_code == 0
115
+
116
+ log = Log()
117
+ events = log.events
118
+ return events[len(events) - 1]
119
+
120
+ @pytest.fixture(autouse=True, scope='class')
121
+ def put_event_two(self, runner: CliRunner, recorded_request_two: Request):
122
+ snapshot_result = runner.invoke(request, ['snapshot', recorded_request_two.key()])
123
+ assert snapshot_result.exit_code == 0
124
+
125
+ log = Log()
126
+ events = log.events
127
+ return events[len(events) - 1]
128
+
129
+ @pytest.fixture(autouse=True, scope='class')
130
+ def migrated_event(
131
+ self, runner: CliRunner, put_event: LogEvent, put_event_two: LogEvent, created_scenario: Scenario
132
+ ):
133
+ time.sleep(1) # Simulate update at different time
134
+
135
+ current_dir = os.path.dirname(os.path.abspath(__file__))
136
+ lifecycle_hooks_path = os.path.join(current_dir, 'lifecycle_hooks_migrate.py')
137
+ migrate_result = runner.invoke(snapshot,
138
+ ['migrate', '--scenario-key', created_scenario.key(), lifecycle_hooks_path]
139
+ )
140
+ assert migrate_result.exit_code == 0
141
+
142
+ log = Log()
143
+ events = log.events
144
+
145
+ assert len(events) == 3
146
+ assert events[0].uuid == put_event.uuid
147
+ assert events[1].uuid == put_event_two.uuid
148
+ return events[2]
149
+
150
+ @pytest.fixture(scope='class')
151
+ def migrated_request(self, runner: CliRunner, recorded_request_one: Request):
152
+ apply_result = runner.invoke(snapshot, ['apply'], catch_exceptions=False)
153
+ assert apply_result.exit_code == 0
154
+
155
+ request = Request.find(recorded_request_one.id)
156
+ assert request != None
157
+
158
+ return request
159
+
160
+ def test_it_has_different_uuid(self, migrated_event: LogEvent, put_event: LogEvent):
161
+ assert migrated_event.uuid != put_event.uuid
162
+
163
+ def test_it_has_same_action(self, migrated_event: LogEvent, put_event: LogEvent):
164
+ assert migrated_event.action == put_event.action
165
+
166
+ def test_it_has_same_resource(self, migrated_event: LogEvent, put_event: LogEvent):
167
+ assert migrated_event.resource == put_event.resource
168
+
169
+ def test_it_has_same_resource_uuid(self, migrated_event: LogEvent, put_event: LogEvent):
170
+ assert migrated_event.resource_uuid == put_event.resource_uuid
171
+
172
+ def test_it_has_different_created_at(self, migrated_event: LogEvent, put_event: LogEvent):
173
+ assert migrated_event.created_at != put_event.created_at
174
+
175
+ def test_it_migrates_request(self, migrated_request: Request):
176
+ python_request = RawHttpRequestAdapter(migrated_request.raw).to_request()
177
+ assert python_request.headers['X-Test'] == '1'
178
+
179
+ def test_it_migrates_response(self, migrated_request: Request):
180
+ python_response = RawHttpResponseAdapter(migrated_request.response.raw).to_response()
181
+ assert python_response.content == b'Test'
@@ -1 +1 @@
1
- 1.7.2
1
+ 1.8.5
@@ -63,12 +63,16 @@ class TestTraceContext():
63
63
 
64
64
  @pytest.fixture(scope='class')
65
65
  def accept_encodings(self):
66
- return ['gzip; deflate', 'br']
66
+ return ['identity'] # Overriden by intercept handler
67
67
 
68
68
  @pytest.fixture(scope='class')
69
69
  def access_token(self):
70
70
  return 'abc123'
71
71
 
72
+ @pytest.fixture(scope='class')
73
+ def cache_controls(self):
74
+ return ['no-cache', 'no-store'] # Overriden by intercept handler
75
+
72
76
  @pytest.fixture(scope='class')
73
77
  def aliases(self):
74
78
  return [
@@ -79,6 +83,10 @@ class TestTraceContext():
79
83
  {
80
84
  'id': 2,
81
85
  'name': ':accessToken'
86
+ },
87
+ {
88
+ 'id': 3,
89
+ 'name': ':cacheControl'
82
90
  }
83
91
  ]
84
92
 
@@ -86,6 +94,7 @@ class TestTraceContext():
86
94
  def header_names(self, aliases):
87
95
  accept_encoding_alias = aliases[0]
88
96
  access_token_alias = aliases[1]
97
+ cache_control_alias = aliases[2]
89
98
  return [
90
99
  {
91
100
  'alias_id': accept_encoding_alias['id'],
@@ -96,6 +105,11 @@ class TestTraceContext():
96
105
  'alias_id': access_token_alias['id'],
97
106
  'id': 2,
98
107
  'name': 'Access-Token'
108
+ },
109
+ {
110
+ 'alias_id': cache_control_alias['id'],
111
+ 'id': 3,
112
+ 'name': 'Cache-Control'
99
113
  }
100
114
  ]
101
115
 
@@ -106,11 +120,12 @@ class TestTraceContext():
106
120
  return endpoint_show_response
107
121
 
108
122
  @pytest.fixture(scope='class')
109
- def decorated_request_schema(self, request_schema: RequestSchema, accept_encodings, access_token):
123
+ def decorated_request_schema(self, request_schema: RequestSchema, accept_encodings: list, access_token: str, cache_controls: list):
110
124
  headers = request_schema.headers
111
125
  headers.add('Accept-Encoding', accept_encodings[0])
112
- headers.add('Accept-Encoding', accept_encodings[1])
113
126
  headers.add('Access-Token', access_token)
127
+ headers.add('Cache-Control', cache_controls[0])
128
+ headers.add('Cache-Control', cache_controls[1])
114
129
  request_schema.headers = headers
115
130
  return request_schema
116
131
 
@@ -124,6 +139,11 @@ class TestTraceContext():
124
139
  access_token_alias = aliases[1]
125
140
  return trace_context.create_trace_alias(access_token_alias['name'], '1')
126
141
 
142
+ @pytest.fixture(scope='class')
143
+ def cache_control_trace_alias(self, trace_context: TraceContext, aliases):
144
+ cache_control_alias = aliases[2]
145
+ return trace_context.create_trace_alias(cache_control_alias['name'], '1')
146
+
127
147
  def test_it_resolves_accept_encoding(
128
148
  self,
129
149
  trace_context: TraceContext,
@@ -150,6 +170,19 @@ class TestTraceContext():
150
170
 
151
171
  assert trace_alias.assigned_to == access_token
152
172
 
173
+ def test_it_resolves_access_token(
174
+ self,
175
+ trace_context: TraceContext,
176
+ decorated_request_schema: RequestSchema,
177
+ decorated_endpoint_show_response,
178
+ cache_control_trace_alias: TraceAlias,
179
+ cache_controls,
180
+ ):
181
+ trace_context.rewrite_request(decorated_request_schema, decorated_endpoint_show_response)
182
+ trace_alias = TraceAlias.find_by(id=cache_control_trace_alias.id)
183
+
184
+ assert trace_alias.assigned_to == ', '.join(cache_controls)
185
+
153
186
  class TestWhenQueryParam():
154
187
 
155
188
  @pytest.fixture(scope='class')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: stoobly-agent
3
- Version: 1.8.3
3
+ Version: 1.8.5
4
4
  Summary: Record, mock, and test HTTP(s) requests. CLI agent for Stoobly
5
5
  License: Apache-2.0
6
6
  Author: Matt Le
@@ -1,12 +1,12 @@
1
- stoobly_agent/__init__.py,sha256=J2JqrH2GFu96vjqCEMJ_KNcQvXZMEz3kpPg-23ehEjo,44
1
+ stoobly_agent/__init__.py,sha256=GQNR-Vd2pipbgXV4dXfROzchWJkAabmUFXIF2vgyat8,44
2
2
  stoobly_agent/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  stoobly_agent/app/api/__init__.py,sha256=ctkB8KR-eXO0SFhj602huHiyvQ3PslFWd8fkcufgrAI,1000
4
4
  stoobly_agent/app/api/application_http_request_handler.py,sha256=Vvz53yB0bR7J-QqMAkLlhcZrA4P64ZEN7w8cMbgl6o0,5261
5
5
  stoobly_agent/app/api/bodies_controller.py,sha256=tiuBIcLsRIUrVlStFwhGj_8AzsURSmW0E_MDQb09WXY,2267
6
6
  stoobly_agent/app/api/configs_controller.py,sha256=wkO3_9cexH7BKwm_2KflKEEdxvBFwc9vju_wouUjjBI,4692
7
- stoobly_agent/app/api/headers_controller.py,sha256=3o2phGKecxJ--pjiZ6-L7kpVMvr8ZP-P5Mxc-J-o_hg,2781
7
+ stoobly_agent/app/api/headers_controller.py,sha256=qUM0U0WNn_87outx1y4r8Mfr6RqHO0UR91JP0-LNajc,2781
8
8
  stoobly_agent/app/api/proxy_controller.py,sha256=XMGk8-5WAdJS1_n5Li0aA7-q_3vDG4Q0pqLq4YVzsDg,5056
9
- stoobly_agent/app/api/query_params_controller.py,sha256=y7DMlJgPkACfRoAd2KeCge0Z8Vy9LKDDHj_RnMo28HQ,3640
9
+ stoobly_agent/app/api/query_params_controller.py,sha256=3bdu-Gr6hyLh5_wql2-s6kDRJlYoarmd7m0df2rdCMk,3621
10
10
  stoobly_agent/app/api/replayed_response_headers_controller.py,sha256=0rdNlw74L5KsQxKJyKUf_lfoxoh82xKkJ7m1Nmz_3sM,1768
11
11
  stoobly_agent/app/api/replayed_responses_controller.py,sha256=bPd8MmS1mT1uuWoJ6uhJQk_dafISDGhH8yIyEjCRCvw,3435
12
12
  stoobly_agent/app/api/requests_controller.py,sha256=VzUhJwavUu7SJqP-Osg4S8IGv-6qDToG1iZJvdUNalM,9598
@@ -204,13 +204,14 @@ stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=eF3aaK4OIZXYuSBEAe
204
204
  stoobly_agent/app/cli/scaffold/workflow_validate_command.py,sha256=Uo_yo6rVR1ZR7xpvsQvlH48AyMBVLRupd4G-bRjzm_Q,5584
205
205
  stoobly_agent/app/cli/scaffold_cli.py,sha256=zrXf2nUI5jRnf6x-j3kKmia8vH_AngjpweVnjdD_R3Q,30075
206
206
  stoobly_agent/app/cli/scenario_cli.py,sha256=3J1EiJOvunkfWrEkOsanw-XrKkOk78ij_GjBlE9p7CE,8229
207
- stoobly_agent/app/cli/snapshot_cli.py,sha256=cpCjxFYBuVwLuq_b2lIUu-5zWqupRlrp4xWgDytirSM,10047
207
+ stoobly_agent/app/cli/snapshot_cli.py,sha256=Uf6g6ivsD0hUY8G99eU0fxzS3FymncAhI70PxV7Uaac,11919
208
208
  stoobly_agent/app/cli/trace_cli.py,sha256=K7E-vx3JUcqEDSWOdIOi_AieKNQz7dBfmRrVvKDkzFI,4605
209
209
  stoobly_agent/app/cli/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
210
  stoobly_agent/app/cli/types/output.py,sha256=2wazv56g5IwLQeJCWfJXXAxTB9Y5WH1cKMHbpjbXNeo,439
211
211
  stoobly_agent/app/cli/types/print_options.py,sha256=UQSf2aZu4rmamjgmt5g7xIZf8KV02uVHPCt6edZn_c0,219
212
212
  stoobly_agent/app/cli/types/request.py,sha256=QthojE5sfx7OvKu-vVNnSUfGk8n4pLzuBQO0YgoO46Q,88
213
213
  stoobly_agent/app/cli/types/scenario.py,sha256=28WxmOlbm2Bsek1uu7yc4hJGz-d5oHbYAro7LlFWRoc,81
214
+ stoobly_agent/app/cli/types/snapshot_migration.py,sha256=4_Re46FKjsflcTOO3qhNsbWWmdEU67SFsF-XE_FKG3M,1859
214
215
  stoobly_agent/app/cli/types/test.py,sha256=1c458B7DFBWsEk5Q1CrZ2CUi84YzEzcs-W4qTcudwAk,714
215
216
  stoobly_agent/app/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
216
217
  stoobly_agent/app/models/adapters/__init__.py,sha256=cEEE--Bvrvk6DAsHx_uPgFhLnZJETP4zSBtWjMqyIKc,233
@@ -223,15 +224,15 @@ stoobly_agent/app/models/adapters/mitmproxy/response/python_adapter.py,sha256=cl
223
224
  stoobly_agent/app/models/adapters/orm/__init__.py,sha256=0qVpOA89f42H87gVAQzu2uS_P-RnPbcTJWmbK8azMds,183
224
225
  stoobly_agent/app/models/adapters/orm/joined_request_string_adapter.py,sha256=hn7QivdXfFOu8THLvB3ez2Tq39WsDE_Y7mwxUkMMnRI,1702
225
226
  stoobly_agent/app/models/adapters/orm/request/__init__.py,sha256=blE8DoV4KNgU3ZKlcc4OW0OR9E6fKkP15zHAf7PtpSQ,313
226
- stoobly_agent/app/models/adapters/orm/request/mitmproxy_adapter.py,sha256=7misqa-nEeM6tbIAxDgLvFXV058KN22rhJnBzwPdd0w,732
227
+ stoobly_agent/app/models/adapters/orm/request/mitmproxy_adapter.py,sha256=6uQI9PnLDr_0Gq5Dz8NORpQUQ6HVUAJVzvziCrMblbk,732
227
228
  stoobly_agent/app/models/adapters/orm/request/python_adapter.py,sha256=LEjhyPAhNwXNdKyZc9BkYikd_CsXYc2yNoqsk5BRiJQ,397
228
229
  stoobly_agent/app/models/adapters/orm/response/__init__.py,sha256=w_8krEc0nSGEbqfeNQfW27hi0WNM34S5bkn0SO_OtfA,455
229
230
  stoobly_agent/app/models/adapters/orm/response/mitmproxy_adapter.py,sha256=IfY2_N6rcgCeVYAq5tgbvlKG5zN_BhPNZiy9xmNBcJA,571
230
231
  stoobly_agent/app/models/adapters/orm/response/python_adapter.py,sha256=oHQAl4iPDHcVoS1gUkXKPtTsGAof4X-pw9ljHM-cnZ4,353
231
232
  stoobly_agent/app/models/adapters/python/__init__.py,sha256=-myrvhs82ykPRtoTWVxTyicntSvFU1xp0_BoPhNLp20,99
232
- stoobly_agent/app/models/adapters/python/request/__init__.py,sha256=DGjRXX8PD4nnezVl8bWlwc4RHNQ5g5NEN1MJOywd40k,687
233
- stoobly_agent/app/models/adapters/python/request/mitmproxy_adapter.py,sha256=3atW9M3FjyJT_aKjPqp3yhjzu2B7-gItVPlNdZjYnrk,1304
234
- stoobly_agent/app/models/adapters/python/request/raw_adapter.py,sha256=1jI0XT5webNTVx-bfftEvz3ZCMV5X5bKlj6LFsxgmtc,784
233
+ stoobly_agent/app/models/adapters/python/request/__init__.py,sha256=zgOz6a2DvYQ6JYJiL8KMnZv0PN5hP6oS63QfnH5FyYM,687
234
+ stoobly_agent/app/models/adapters/python/request/mitmproxy_adapter.py,sha256=4VmqJS32IIPBx8P4BZxYJgU11eoj-t8kagDuO3ohq5k,1317
235
+ stoobly_agent/app/models/adapters/python/request/raw_adapter.py,sha256=KI_UttTLzF5Rfd8kmexCbdkkUCQcNSVgrCm1JFLLi-o,784
235
236
  stoobly_agent/app/models/adapters/python/request/stoobly_adapter.py,sha256=kSkTu6wQrZcTod6Alsd09kUU62hHtASRNC71IF4V7ec,1072
236
237
  stoobly_agent/app/models/adapters/python/response/__init__.py,sha256=jDyYnJ59t_uPwj6N8fY849A4kPAbBHlaaqDCxXeSiWI,425
237
238
  stoobly_agent/app/models/adapters/python/response/mitmproxy_adapter.py,sha256=Q_nXiGFgn8r236jBWVmEw4XDwhmyLhOycJFHepYMW6c,1602
@@ -253,24 +254,24 @@ stoobly_agent/app/models/factories/resource/body.py,sha256=Ygu-If-MVL3qI5dVN2QJU
253
254
  stoobly_agent/app/models/factories/resource/header.py,sha256=e-bIxX4biRj1_Ndi0ERXIk41miQq03NyU-6QdolF-LU,371
254
255
  stoobly_agent/app/models/factories/resource/local_db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
255
256
  stoobly_agent/app/models/factories/resource/local_db/body_adapter.py,sha256=lrnIX9vC8AGau4LgL6W3rQQsQxeSvDVsShZ-RLQQ_k4,1052
256
- stoobly_agent/app/models/factories/resource/local_db/header_adapter.py,sha256=gIhWeoSPCK7gjL6CQFi39zYqkd38Lb1fVKhzW5DJSeE,2640
257
+ stoobly_agent/app/models/factories/resource/local_db/header_adapter.py,sha256=NQdCErFtJL7sBaLpKLYfJSEA3AiaaVuU7LUcGJ-dHOI,3104
257
258
  stoobly_agent/app/models/factories/resource/local_db/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
258
259
  stoobly_agent/app/models/factories/resource/local_db/helpers/create_request_columns_service.py,sha256=HABMelW-cvhm2WXaywbQcd4PQhzSrz4vAbN7uOdetXM,1541
259
- stoobly_agent/app/models/factories/resource/local_db/helpers/log.py,sha256=4LWxgL4LxQJEZy78FcbKlCdA-OYQZvgVaOWxF4C9qdU,8997
260
- stoobly_agent/app/models/factories/resource/local_db/helpers/log_event.py,sha256=vYZ-tgl5brQREj2eQ9LPsWfwDIXN45ip6VE1ZZBKc10,3364
260
+ stoobly_agent/app/models/factories/resource/local_db/helpers/log.py,sha256=0a3XRfrnbChCVrGpm5gqSlZ3zVK1S7nbWYwXTJawx58,9216
261
+ stoobly_agent/app/models/factories/resource/local_db/helpers/log_event.py,sha256=30wWhqibTWgnpibosclaB9OCWzArL7R4krGS8WW2bGY,3584
261
262
  stoobly_agent/app/models/factories/resource/local_db/helpers/request_builder.py,sha256=PyVvsYmi5bBQ6PsUPxQ4nJM9rhhjGVOTd7ipuc2tMMM,3227
262
- stoobly_agent/app/models/factories/resource/local_db/helpers/request_snapshot.py,sha256=TmcUSmUGtp2RglpuzDrjVY7ZVBFgss5aw14IZGxItg0,1847
263
- stoobly_agent/app/models/factories/resource/local_db/helpers/scenario_snapshot.py,sha256=LWQyhw_LxIzCx4rW5u0_jkJVbXf4myG9ItwJdAhH8Uc,4684
263
+ stoobly_agent/app/models/factories/resource/local_db/helpers/request_snapshot.py,sha256=XvUAqa9icAUPmktcAt30VnQspJVQZhA1K5n6ZVMRZIk,2686
264
+ stoobly_agent/app/models/factories/resource/local_db/helpers/scenario_snapshot.py,sha256=mv_79PgvG6Q7rwYXdV0wZMneb4eC_PPjBk612cQPLqo,4914
264
265
  stoobly_agent/app/models/factories/resource/local_db/helpers/search.py,sha256=A7KVcmxj9c3CT2rh26YH6khiEPkB_4U1UHhiYelNaws,782
265
- stoobly_agent/app/models/factories/resource/local_db/helpers/snapshot.py,sha256=8GNlt33L4zV8yIkkhmb2iLSMYegSiP91HrPyJkE9daE,733
266
+ stoobly_agent/app/models/factories/resource/local_db/helpers/snapshot.py,sha256=_8WPNE2NnvLlDbqnCfgnQveppDWfFZnqCBcX6THb1AU,742
266
267
  stoobly_agent/app/models/factories/resource/local_db/helpers/snapshot_service.py,sha256=fbqh5J5sMj0n_YFQFei2xhXLrSGU9vNmSX_uifA3U3M,1671
267
268
  stoobly_agent/app/models/factories/resource/local_db/helpers/snapshot_types.py,sha256=1pX0jrg13632g_yv_sF1ABzPR7LY7r2HC9g1a5zR1qI,379
268
269
  stoobly_agent/app/models/factories/resource/local_db/helpers/tiebreak_scenario_request.py,sha256=BajElzsTE115hWBT6v67eyNFnrHGz-sU6WBNCzWp7Fg,1237
269
- stoobly_agent/app/models/factories/resource/local_db/local_db_adapter.py,sha256=g2V7gt6BCD-_BKcrr5X__JXJB5zp_XuTFpZUWEcykEw,1390
270
+ stoobly_agent/app/models/factories/resource/local_db/local_db_adapter.py,sha256=Zeem6abkSHXRXTvE3XwzOkUY6fbNm9wocPP2qSX3zQ8,1439
270
271
  stoobly_agent/app/models/factories/resource/local_db/orm_request_builder.py,sha256=4UjFY26ln2Drlg71R4AKY5vUZYbQ28HYQolJv3SBDqE,1581
271
- stoobly_agent/app/models/factories/resource/local_db/query_param_adapter.py,sha256=GutK2RLOPvlCWDsj1PBwJFRNT7EwweQzjObvrA2cIaM,4067
272
+ stoobly_agent/app/models/factories/resource/local_db/query_param_adapter.py,sha256=RSf7wunwOYyIQaJBih1Bd5G3ke65i89PN-WTaOa3ceM,4082
272
273
  stoobly_agent/app/models/factories/resource/local_db/replayed_response_adapter.py,sha256=vUN9ARmRVrxKHpyzWB5w-XX-quOBMFpWOKkyBxTn6mM,3634
273
- stoobly_agent/app/models/factories/resource/local_db/request_adapter.py,sha256=TdO8E1GbYx1yCxXLaS820OaPUSe_7J7NsB1yPANedvk,12991
274
+ stoobly_agent/app/models/factories/resource/local_db/request_adapter.py,sha256=6lARtzqrN4m0qKp7PUT-PSjGYoCLwT9xsFuTmUnaqMM,13528
274
275
  stoobly_agent/app/models/factories/resource/local_db/response_adapter.py,sha256=5mc5_EkPcN44TdrGrrC4egla-Dv6mkj7yrz-jVJ_PIw,3791
275
276
  stoobly_agent/app/models/factories/resource/local_db/response_header_adapter.py,sha256=KrtmNwnGRgMbKOGZmCq7KuGoGBrN8KuoBrCwnpLDZHw,3071
276
277
  stoobly_agent/app/models/factories/resource/local_db/scenario_adapter.py,sha256=K6ITkYTUeEPNGL4_skL80K5G1kgqLtlM3IwpwXsleMw,3883
@@ -285,8 +286,8 @@ stoobly_agent/app/models/factories/resource/stoobly/request_adapter.py,sha256=Zr
285
286
  stoobly_agent/app/models/factories/resource/stoobly/scenario_adapter.py,sha256=HnM4g5Qdv16QXj8u4JCiJm2Dbw9OhAxmn9e_R8oaHG4,1105
286
287
  stoobly_agent/app/models/header_model.py,sha256=m91upRZr8GfE5um0d5dguUESKigBMWhSyu_X3HFk28Y,1406
287
288
  stoobly_agent/app/models/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
288
- stoobly_agent/app/models/helpers/apply.py,sha256=3o2XKHjYHaHyqNeC93O3GPuO-UQm2Kdazzu0Q8jDmXE,8283
289
- stoobly_agent/app/models/helpers/create_request_params_service.py,sha256=_CQD3SNU5nJiWwGHYEEHE1Zil-7u2danVBVnrWE4_h8,2096
289
+ stoobly_agent/app/models/helpers/apply.py,sha256=aWy_OVdDebUDrz3O2qNDIFNPoN4JQJ8VgNzErvpW7TA,8324
290
+ stoobly_agent/app/models/helpers/create_request_params_service.py,sha256=o_VB2FsTGBX55UBBw1yQ8MtsJ4-0YXcxd4kNQ9l21nM,2070
290
291
  stoobly_agent/app/models/model.py,sha256=77ZTByQmH5sWBcSrCF3kG_C4muHggcFyH1DWsOhIgvg,1180
291
292
  stoobly_agent/app/models/query_param_model.py,sha256=EBj76phSJ9_45KgP0vIZGbkkG6-tSn_U1fNW_7qLy_4,1455
292
293
  stoobly_agent/app/models/replayed_response_model.py,sha256=YSxDnUJb1XfB4eNK8ygax9ugBD-niZlK5V4C24tDeic,1819
@@ -312,7 +313,7 @@ stoobly_agent/app/proxy/handle_record_service.py,sha256=pd_3W7YxS52KYcHqzHGDIDMX
312
313
  stoobly_agent/app/proxy/handle_replay_service.py,sha256=kBUYd8kj8UPrsYHoBXmq06DPLjCnHo8K-QsKzhDIKcw,2526
313
314
  stoobly_agent/app/proxy/handle_test_service.py,sha256=WkMPbM4argVtl-TQB7VdQIvB8cOwURAahxFX5Vkqwws,8405
314
315
  stoobly_agent/app/proxy/hot_reload.py,sha256=bcxdN0WM5l7_zY2XYLV2wF7xCpGdZILi4dVsjqAVgig,983
315
- stoobly_agent/app/proxy/intercept_handler.py,sha256=XlFwO501lsAgWvIwjnNmbsdXfBd2WuNG2O8L7eeiAjc,4180
316
+ stoobly_agent/app/proxy/intercept_handler.py,sha256=YUk7fv6AQ6---T178ASsM86XIOpsSVQCx9dZUsoOW1o,4272
316
317
  stoobly_agent/app/proxy/intercept_settings.py,sha256=KoDoUjrwvX491NHgW2M2CvaEUHOIFejiPUX4icAPZIw,11890
317
318
  stoobly_agent/app/proxy/mitmproxy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
318
319
  stoobly_agent/app/proxy/mitmproxy/flow_mock.py,sha256=YxQV3pXIzicvLOCFn7zmnSoAstAmR8fzONYOXAkYbT4,1153
@@ -334,15 +335,15 @@ stoobly_agent/app/proxy/mock/search_endpoint.py,sha256=HDN3tIkPnlgmkt-BbZDz7iwac
334
335
  stoobly_agent/app/proxy/mock/types/__init__.py,sha256=r4Zwqx6V5HHZwrcYWEv6xSXG0nXaN5FqxqCm0d3U-GM,150
335
336
  stoobly_agent/app/proxy/record/__init__.py,sha256=lbW-G6DZ8IrRpRzvgt-1tn2cRuyLT744u9ERIrZ2dFI,233
336
337
  stoobly_agent/app/proxy/record/context.py,sha256=L9tykwoB35hOPHft3IHSPjuJ2v3TSj9SQAJ9E1q-U_4,343
337
- stoobly_agent/app/proxy/record/join_request_service.py,sha256=-IUTQGADakpNERSBjug4_I82qYJ7k8rVd5L2sQgCWxI,1197
338
+ stoobly_agent/app/proxy/record/join_request_service.py,sha256=XivD1Anb8P-FfAz5No1o2MqSz4g7w8wZs7QtlWcNMHU,1601
338
339
  stoobly_agent/app/proxy/record/joined_request.py,sha256=va79Pkz5RWACJn07ipV_FtVmGUzjSlqhfUu_amw9bX8,1553
339
340
  stoobly_agent/app/proxy/record/overwrite_scenario_service.py,sha256=3em2a2ry4MrE30XlAukat-l3L9cu4o13Cxhi6BBUgkc,940
340
- stoobly_agent/app/proxy/record/proxy_request.py,sha256=6DqQ2KH7AtfvXg5HNDWwvwgjO7x1QrWDYgJOBMWPKqs,418
341
- stoobly_agent/app/proxy/record/request_string.py,sha256=EXpb-8WFUZWiWvnl37WzE_NSYoPviHbwoIFhKenQMkU,2424
341
+ stoobly_agent/app/proxy/record/proxy_request.py,sha256=CsvWx-dcnPLsuEGQ6IB4ofVstHy6esXVZ-R0-LroxRQ,557
342
+ stoobly_agent/app/proxy/record/request_string.py,sha256=IaBxlcKq0ZeGJBZud88DibkDaybJl7MIBRi1Yk3PXuA,2513
342
343
  stoobly_agent/app/proxy/record/request_string_control.py,sha256=qnqfD8iD6qtACM9Bq_ZwVgT5tjr-Yg_JfdFYVvodF5Y,887
343
344
  stoobly_agent/app/proxy/record/response_string.py,sha256=ZdWYAntE7Z2oPd8tDizo8fKqbgq_BeqZ1_-JJM55b44,2818
344
345
  stoobly_agent/app/proxy/record/response_string_control.py,sha256=YXQGGxaldRFA3UEQKt8r6lZ0R-kYyp_zWOZErNwiLmQ,1105
345
- stoobly_agent/app/proxy/record/upload_request_service.py,sha256=0YXpthGo0J7pETs7DAsTdKa50qXKjlSTBuKc1aKDMZE,5082
346
+ stoobly_agent/app/proxy/record/upload_request_service.py,sha256=Yoatu_feC5Na0Tjv5r_ZmEKdNue1NJ58GRMoH3YWso0,5237
346
347
  stoobly_agent/app/proxy/replay/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
347
348
  stoobly_agent/app/proxy/replay/alias_context.py,sha256=u_CL64wrLcZiIYWvyOMFlpVcAsigC-8IqrE0iDeRMro,748
348
349
  stoobly_agent/app/proxy/replay/alias_resolver.py,sha256=0t7dISfVoFIa_fOqhUZQr0IbTR3sN3nmGPK3OkM7GSw,3493
@@ -368,7 +369,7 @@ stoobly_agent/app/proxy/test/helpers/request_component_names_facade.py,sha256=-c
368
369
  stoobly_agent/app/proxy/test/helpers/requests_response_adapter.py,sha256=WYDaTOhD_cKt3P8Y9uVZHeIS1lSIoT3HXO8pn8v2cMM,425
369
370
  stoobly_agent/app/proxy/test/helpers/stoobly_response_adapter.py,sha256=wrvoxn-b7D4LylvBTPK5-Aqxq6oCcHSVeoIill0durk,634
370
371
  stoobly_agent/app/proxy/test/helpers/test_results_builder.py,sha256=YGXgcFokekBiSMFlMGkdPsp91rmPWBJD93OM-eS_JOA,4412
371
- stoobly_agent/app/proxy/test/helpers/upload_test_service.py,sha256=jNIkT5w8el5_cejdtCD4Qw4UTOXNlyta-D5g5_fvTuQ,2089
372
+ stoobly_agent/app/proxy/test/helpers/upload_test_service.py,sha256=GEN2XG_Fkb9-gLm0lSKEhzTax4XDLsjR-tm6QqEieX0,2108
372
373
  stoobly_agent/app/proxy/test/matchers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
373
374
  stoobly_agent/app/proxy/test/matchers/context.py,sha256=8ZLKjBVAmJ_zlp6vb1SbHHgDdMB4XjYAQauz7Jf9I7k,7983
374
375
  stoobly_agent/app/proxy/test/matchers/contract.py,sha256=eE5Q9uVHR8wjyXJU_GyUA_zoNOg1TCo4FCdWIr2sITU,5524
@@ -421,7 +422,7 @@ stoobly_agent/config/constants/custom_headers.py,sha256=cZZ3nae2fpnk_uUXFNYjrPp7
421
422
  stoobly_agent/config/constants/env_vars.py,sha256=HAR_ZIdXXbpWQgCDaRR5RtpVyGXCsMLr_Fh8n6S12K0,1344
422
423
  stoobly_agent/config/constants/headers.py,sha256=Hfv7R8_NPXAGaMiZPqywGZDnr0qcVUyfenPb4g465rE,169
423
424
  stoobly_agent/config/constants/intercept_policy.py,sha256=5hIgOft8PQmCRdOHb5OEvEj10tU66DIQF3GYltlWyM8,25
424
- stoobly_agent/config/constants/lifecycle_hooks.py,sha256=aobclZmcND_mUnFKkUgpxgwd5EU3pjgAvB-NFf2dCgE,846
425
+ stoobly_agent/config/constants/lifecycle_hooks.py,sha256=uEiINpFP_jOPghg_cprE2r6yn77_kP4-JPzycUTSwTg,887
425
426
  stoobly_agent/config/constants/mock_policy.py,sha256=oS3eKL5Ezpnm_4zvztcLvvtKppxm7eKvOOBHYKyKpeU,133
426
427
  stoobly_agent/config/constants/mode.py,sha256=J35vV1LPQRhD2ob6DaJ7mLGJrMhv-CVnC6IHWd7b_GM,160
427
428
  stoobly_agent/config/constants/query_params.py,sha256=b-QQGKTqf-HePt0X4ltFksf5ETiIFPgBvh-kFrF7kUk,63
@@ -511,7 +512,7 @@ stoobly_agent/lib/orm/trace.py,sha256=gBDP5o5prdjHU47U1y1_NYz9RMpJt2OMj1prTvqXwn
511
512
  stoobly_agent/lib/orm/trace_alias.py,sha256=RMlEY8k9mF81YmFNANkHOyFeTfyI4CSC6jNESlRBgSg,2381
512
513
  stoobly_agent/lib/orm/trace_request.py,sha256=IQ4rC_MrTLqJ-aaUbM3ZRwMr7J1yN7i15cp6GFsN7YE,479
513
514
  stoobly_agent/lib/orm/transformers/__init__.py,sha256=polEv91Do0puZAzea3HZzkA3T5zZ0RQFMHl0TZnTRuk,306
514
- stoobly_agent/lib/orm/transformers/orm_to_request_transformer.py,sha256=z_2RzkeYTomyOHvW9nnYFGWBVekJvEn9rBdOWvugq0E,1574
515
+ stoobly_agent/lib/orm/transformers/orm_to_request_transformer.py,sha256=-j_7jrZBPGnWZLqt9yelsd_GsdaxaK8GkP6fGpI5lgU,3512
515
516
  stoobly_agent/lib/orm/transformers/orm_to_requests_response_transformer.py,sha256=_dPweJxGpNGRVyQrgc0F1VGOSnrmVZSE1RaaCIjU454,1552
516
517
  stoobly_agent/lib/orm/transformers/orm_to_stoobly_request_transformer.py,sha256=JcPZMWEFYJkAFwlwz0AbikEXM1t0Ot2i4YolVXAAUSg,4591
517
518
  stoobly_agent/lib/orm/transformers/orm_to_stoobly_response_transformer.py,sha256=QowSh1F2p62AKOTQOTlwqUnWHtBX4sfXBxuNzuj3KH0,954
@@ -537,8 +538,8 @@ stoobly_agent/public/10-es2015.56da22458086513ba0c7.js,sha256=zsH9UyszQiF2Op1ut5
537
538
  stoobly_agent/public/10-es5.56da22458086513ba0c7.js,sha256=Ru3P_yNZ3Ni4Qv82IQZ318rzlIwSBwpsDDWbSo0-hwM,49621
538
539
  stoobly_agent/public/12-es2015.be58ed0ef449008b932e.js,sha256=XGzXC9YqbhutqegTKJWiN_M0CK9WmPYRcERHLi43A8g,173141
539
540
  stoobly_agent/public/12-es5.be58ed0ef449008b932e.js,sha256=xKhRW_wwNHwlUW8HWnPmjCobpgBptZUJXYbGc8P_uyQ,177713
540
- stoobly_agent/public/13-es2015.343b0261a8b3b3f4a1fc.js,sha256=RUNZcoFIuwFaaD2q-x4pEbaBEcD3rft59BSGvqZ1yo4,81775
541
- stoobly_agent/public/13-es5.343b0261a8b3b3f4a1fc.js,sha256=n1vFw6nRjrT5Lr6-TEiuJsmSzFuFGc3jikm5Gp4rbas,83593
541
+ stoobly_agent/public/13-es2015.6d3a4fd76d46bfa5f200.js,sha256=fuq0esBUl4NGHVxczpyuwVdjU3HepUJE2zhErOHVKgA,81883
542
+ stoobly_agent/public/13-es5.6d3a4fd76d46bfa5f200.js,sha256=ad8-77ypFmIUsJF9LX2EzJ0kd-u7hKaEKHTaF0DiTSM,83686
542
543
  stoobly_agent/public/14-es2015.b6619d7742671d2a37fb.js,sha256=lPxYYNk6x04KMDCApe2X_yJgwSqN-YzyQBylxsLQv88,17926
543
544
  stoobly_agent/public/14-es5.b6619d7742671d2a37fb.js,sha256=BH5DsgZdQPkEtgSl8G1El5iruX7Pv2LqWFLIHaND-Ec,22165
544
545
  stoobly_agent/public/15-es2015.d8855701408b0e1d7a3e.js,sha256=T4Zy6EKdgS1GXfEon5KOgfs9w3Ki_11ghTSNMqqZP2w,125191
@@ -547,8 +548,8 @@ stoobly_agent/public/16-es2015.98fa59c2c96d2caac3c3.js,sha256=UT1Osw9eIQrw_DY78E
547
548
  stoobly_agent/public/16-es5.98fa59c2c96d2caac3c3.js,sha256=PvGoSIj08MWxsyrzxrEEjcVFES8Dxz4oys-7WSvScYc,40776
548
549
  stoobly_agent/public/17-es2015.7f60b56d1fd66d4d5544.js,sha256=JSDKvjqd2vCG2QXnSthxBZWxDiRpAyQh8HbnyQUHsQE,93859
549
550
  stoobly_agent/public/17-es5.7f60b56d1fd66d4d5544.js,sha256=QTLvq9pTwfA4biWhGParTNYqrGJ_Q7PLzTxotH7DO8o,99561
550
- stoobly_agent/public/18-es2015.503207073756a9c8211a.js,sha256=ew5beiZaMh5amY-DO3SKdJY9RsPtRpuxXWDyMaC7mrA,226079
551
- stoobly_agent/public/18-es5.503207073756a9c8211a.js,sha256=sTUPqkjXmAFGYJ6__YGmj-gkEgxJVtm060mP_yxdnCI,230722
551
+ stoobly_agent/public/18-es2015.d07dd29def7e2574c5b7.js,sha256=bQ2-WDo3S1XNJInAtse3ztfmQeq3jYZN31o7W8Uw_gg,226081
552
+ stoobly_agent/public/18-es5.d07dd29def7e2574c5b7.js,sha256=_lgaKMwmdBaYmd1GuUI4TrCoQnuFRUIxZpBLF8PBa48,230724
552
553
  stoobly_agent/public/19-es2015.e5acb2c1e0e91717efc2.js,sha256=U4cUBWnCOz0UakP6lSL21eNPCSrFKwK5FZU2euytdm8,50604
553
554
  stoobly_agent/public/19-es5.e5acb2c1e0e91717efc2.js,sha256=sIKWzToxcTpvMbP_Yc-UZwzmGX32K4ewLNwPjMVE0Bw,53481
554
555
  stoobly_agent/public/2-es2015.51eb8544ea9a21f2874c.js,sha256=9mfdispLMBfibZJKNVb8yLQC2oo_k2hl5FCLP9ex8vI,23146
@@ -575,8 +576,8 @@ stoobly_agent/public/33-es2015.da5ba1e5baa164921198.js,sha256=-BNSVIBS3zLv96qWz3
575
576
  stoobly_agent/public/33-es5.da5ba1e5baa164921198.js,sha256=lqUjYoz06ltYD3HGOqLlcY4RbfmwmMGCa9W895duMrY,37364
576
577
  stoobly_agent/public/34-es2015.87acbb95cfb824650157.js,sha256=NcF3df4l4YnokHotYPRDLtbrpavMeZTOm5PweNaAJ7g,96972
577
578
  stoobly_agent/public/34-es5.87acbb95cfb824650157.js,sha256=C851uEe4_kJpsPG5PPeoDnhUW-0uoJTAYvgU2idOJyU,99259
578
- stoobly_agent/public/35-es2015.a23419c9c7bff162a8e3.js,sha256=Nram83OBwrpHQH161zoRQn76s2pXaatA6E55b9gXDBo,187603
579
- stoobly_agent/public/35-es5.a23419c9c7bff162a8e3.js,sha256=Gl0gESXt2zbbpR-EG0k8q1RNm3bLVD9kp3OSYG_8AfU,191946
579
+ stoobly_agent/public/35-es2015.4ffe6f7a196ed1a87fc7.js,sha256=VrdZZFYEnDZ6RbD537-XC4eZlDxeaQ6FChX_LdbUnX0,187688
580
+ stoobly_agent/public/35-es5.4ffe6f7a196ed1a87fc7.js,sha256=2qwxLardMMHiZiL1O62_DjZWengT0xsjdBhC_A0I-ec,192022
580
581
  stoobly_agent/public/36-es2015.e3a104020eeec02cb8c4.js,sha256=WQgISJKDEXNXcr9Wv--7iUpw6eC_9wit0IXha4JShls,79154
581
582
  stoobly_agent/public/36-es5.e3a104020eeec02cb8c4.js,sha256=xirhOd1ruj09LsZJoWqt76WZ5so7xUy9s30ZmfVPkQk,81129
582
583
  stoobly_agent/public/37-es2015.3b472e6cf303201bbf2c.js,sha256=FdGpZp-QnsDMKN7FDakZffqK8IXxVVrEECH4w63NWCs,161925
@@ -640,13 +641,13 @@ stoobly_agent/public/assets/img/logo/white.svg,sha256=qUSVIlslmQRkZNQkL6JXhK_rRo
640
641
  stoobly_agent/public/common-es2015.388805227aa99c527fba.js,sha256=VLCjAWJr277Jc0n8V5_4suShUYTflO2KLgGXWjz5fpU,7080
641
642
  stoobly_agent/public/common-es5.388805227aa99c527fba.js,sha256=8DJYZ8fNUrpcb6WCfHgqgnMU3aP0s5lCyskBnLTUeM4,8183
642
643
  stoobly_agent/public/favicon.ico,sha256=duQa4tOX0GPI3u4cEBO5Bt124EWpvymGQDqPfy0LtkM,15086
643
- stoobly_agent/public/index.html,sha256=Uyct7A4EioqD_JTdz1r80ln8Jbjy6nFqqHqf8mfEFT4,11355
644
- stoobly_agent/public/main-es2015.d682619f3d6d53d64c6a.js,sha256=rw_RHi1bqUCJcRNaCkfAyTriYxjI-5mLIbgfqCoYamU,1423241
645
- stoobly_agent/public/main-es5.d682619f3d6d53d64c6a.js,sha256=2cE-vXhQh4v-D8kOncfWVA-VGQUcc3dbPcIzvkv1hIE,1571088
644
+ stoobly_agent/public/index.html,sha256=-dnib5WUOaxsSknfnwd7hba9M0XCMeNGasTQxOhyFwc,11355
645
+ stoobly_agent/public/main-es2015.ce00115b0520fa030f01.js,sha256=p8WX9jk-lF9HBgFwSm9bCjcTNwKknyNeWvwsKLPkKKo,1423245
646
+ stoobly_agent/public/main-es5.ce00115b0520fa030f01.js,sha256=uL9g6qk6rBjis3r17Sod5erv-SIQfR-_YKvT0TzQVqY,1571084
646
647
  stoobly_agent/public/polyfills-es2015.8ce2adc69f283f6c4c5e.js,sha256=SDAz_6WyDiolzuBD-6ZCspWeXeR5gFDvSxFAdihJ3vk,37168
647
648
  stoobly_agent/public/polyfills-es5.7530172ddcec11a10eb3.js,sha256=lue-PFE_AvHlq5HJFPUTUWxayp4_3Ktdg8KwaJQuug4,132015
648
- stoobly_agent/public/runtime-es2015.7130ec4068d875dc38bd.js,sha256=HxHzZ3iOi486KpN23vK0kWvWesg6iVHbhcne46oSzW4,3379
649
- stoobly_agent/public/runtime-es5.7130ec4068d875dc38bd.js,sha256=Zaaltnax9zhzkoQ5cZlofTCpffkoxwHexxdn0eszduo,3376
649
+ stoobly_agent/public/runtime-es2015.b13c22b834b51724d30a.js,sha256=zROuaLITfCdQyv9uGAP0FnxAo4qtEGuiJZL-vSL1-QA,3379
650
+ stoobly_agent/public/runtime-es5.b13c22b834b51724d30a.js,sha256=lUj79tS7mPW1_Yp0IYWjreIlc7y-WJdAVOfTSTNhAxY,3376
650
651
  stoobly_agent/public/styles.ab281309cf423b2cdcb0.css,sha256=3R9PubCATNJBMZC6bL9IiwQQdennG6uXctnMYKfSw-0,173756
651
652
  stoobly_agent/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
652
653
  stoobly_agent/test/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -682,10 +683,12 @@ stoobly_agent/test/app/cli/scenario/scenario_create_test.py,sha256=fGqcjO1_1Ovdp
682
683
  stoobly_agent/test/app/cli/scenario/scenario_replay_integration_test.py,sha256=NbGJzmvPsNLBR0ac65yt_cOTfpnsST1IG7i3F0euwAk,7031
683
684
  stoobly_agent/test/app/cli/scenario/scenario_replay_test.py,sha256=XqR-GDrR8uUtxvukBuIFJ4GsOzBj9WWi4b0VKmfhFyE,6874
684
685
  stoobly_agent/test/app/cli/scenario/scenario_reset_test.py,sha256=QOyytOoFu1FALny3-xwp9r4bfOE9fftgnhkDJWYxXh0,2021
685
- stoobly_agent/test/app/cli/scenario/scenario_snapshot_test.py,sha256=vk572Oxp1c8Y4utqq3L24nTkFj5Fttig0R2cWXUzg3E,3395
686
+ stoobly_agent/test/app/cli/scenario/scenario_snapshot_test.py,sha256=IAe1l69Smd8a9E6I0CVs8lgqnC4mI4M1EFfUjC4ZHs8,3396
686
687
  stoobly_agent/test/app/cli/scenario/scenario_test_integration_test.py,sha256=BdXGe1xfb79tCCTKtp4sqI6CkZL_KamvQKLK8Wwb4u0,5543
688
+ stoobly_agent/test/app/cli/snapshot/lifecycle_hooks_migrate.py,sha256=x3x5vHfZ1xmoOpZ0yRSB3kbWbPjfbLk2PJFSa1xOLoU,316
687
689
  stoobly_agent/test/app/cli/snapshot/snapshot_apply_test.py,sha256=p0Nyv66agEPOKY23lMNBZQNAXNL1zoYJz2N5ev4rvO0,21729
688
690
  stoobly_agent/test/app/cli/snapshot/snapshot_copy_test.py,sha256=Yg78-FhSiG_r6Jpm-sN8sn0LjVXTwTOXt6hg8ni2GIY,1953
691
+ stoobly_agent/test/app/cli/snapshot/snapshot_migrate_test.py,sha256=voEvblK6CMGCrSJDTHVmkUkLXj0auNb78jxlGiiBBQQ,7370
689
692
  stoobly_agent/test/app/cli/snapshot/snapshot_prune_test.py,sha256=Hi8-rpQ9ryy1Jdl_KB9ERXgbLHLKmuFQZaxn5EVFj9I,3752
690
693
  stoobly_agent/test/app/cli/snapshot/snapshot_update_test.py,sha256=fILsX2M5j4wuLRP6LJTHe4CPB8gvaEbsSoYmFCHmKVk,4514
691
694
  stoobly_agent/test/app/models/adapters/orm/joined_request_string_adapter_test.py,sha256=a2IHTk3l7aiLyYF7vtqissrk0MFTF2wlUBiaKWyJKfU,2667
@@ -702,7 +705,7 @@ stoobly_agent/test/app/models/factories/resource/local_db/helpers/log_test.py,sh
702
705
  stoobly_agent/test/app/models/factories/resource/local_db/helpers/tiebreak_scenario_request_test.py,sha256=a1SFLyEyRRLuADvAw6ckQQKORFXvyK1lyrbkaLWx8oU,3399
703
706
  stoobly_agent/test/app/models/factories/resource/local_db/request_adapter_test.py,sha256=Pzq1cBPnP9oSWG-p0c-VoymoHxgp483QmNwmV1b78RA,8453
704
707
  stoobly_agent/test/app/models/factories/resource/local_db/response_adapter_test.py,sha256=9P95EKH5rZGOrmRkRIDlQZqtiLJHk9735og18Ffwpfw,2204
705
- stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION,sha256=EsweFLPst1Z6S0S1U7ggLWHOwiK1tpz7HoVhJbiwG0Q,5
708
+ stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION,sha256=vBPve_ulWPaMP-stw3TjfbPykk0t0aSluYQaVmn0ZJA,5
706
709
  stoobly_agent/test/app/models/schemas/.stoobly/db/stoobly_agent.sqlite3,sha256=ch8gNx6zIelLKQx65gwFx_LRNqUD3EC5xcHZ0ukIQiU,188416
707
710
  stoobly_agent/test/app/models/schemas/.stoobly/settings.yml,sha256=vLwMjweKOdod6tSLtIlyBefPQuNXq9wio4kBaODKtAU,726
708
711
  stoobly_agent/test/app/models/schemas/.stoobly/tmp/options.json,sha256=OTRzarwus48CTrItedXCrgQttJHSEZonEYc7R_knvYg,2212
@@ -711,7 +714,7 @@ stoobly_agent/test/app/proxy/mitmproxy/request_facade_test.py,sha256=sXlzjKVvpOR
711
714
  stoobly_agent/test/app/proxy/mock/eval_fixtures_service_test.py,sha256=LTn7iWtHyNVqezRfM2Uf_BiK4vFnS3hgoaIdrzjkcPk,5739
712
715
  stoobly_agent/test/app/proxy/replay/body_parser_service_test.py,sha256=MTC4a3QxrptHzroHAfgrCEzCZ3Ur0Ijyj9_3k-bG0jQ,1228
713
716
  stoobly_agent/test/app/proxy/replay/rewrite_params_service_test.py,sha256=4KVaP48KjCeoZKqY3IdrFAP5Pnb3jO86k8L7ffvz2ZI,3770
714
- stoobly_agent/test/app/proxy/replay/trace_context_test.py,sha256=hwugGI0RMpzuanyHsDzQeck9lW_AgqMczGZ5u2wHNkE,13150
717
+ stoobly_agent/test/app/proxy/replay/trace_context_test.py,sha256=y0oBNC89sp3BG8biOBTiaTopk1LtqjThlA4d6BwAHzM,14462
715
718
  stoobly_agent/test/app/proxy/replay/visitor_test.py,sha256=XfcMXjoViN-RpK-fGioq4p3Wei32NofdG0dPYn1yLeI,3468
716
719
  stoobly_agent/test/app/proxy/test/helpers/test_results_builder_test.py,sha256=T9IZp0PaLATgQ_pa_cCa37rZamLB7whfPi0dn9v910M,3556
717
720
  stoobly_agent/test/app/proxy/upload/request_string_test.py,sha256=wsx1FAWCCog_nhe2u3vyNR1hfUgyvzVYI9zOmDtMrnY,2303
@@ -743,8 +746,8 @@ stoobly_agent/test/mock_data/scaffold/docker-compose-local-service.yml,sha256=1W
743
746
  stoobly_agent/test/mock_data/scaffold/index.html,sha256=qJwuYajKZ4ihWZrJQ3BNObV5kf1VGnnm_vqlPJzdqLE,258
744
747
  stoobly_agent/test/mock_data/uspto.yaml,sha256=6U5se7C3o-86J4m9xpOk9Npias399f5CbfWzR87WKwE,7835
745
748
  stoobly_agent/test/test_helper.py,sha256=m_oAI7tmRYCNZdKfNqISWhMv3e44tjeYViQ3nTUfnos,1007
746
- stoobly_agent-1.8.3.dist-info/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
747
- stoobly_agent-1.8.3.dist-info/METADATA,sha256=SanBD75sF3pN2uha2WNqODn0sk_nbx_0lPmFmfrIKNo,3087
748
- stoobly_agent-1.8.3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
749
- stoobly_agent-1.8.3.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
750
- stoobly_agent-1.8.3.dist-info/RECORD,,
749
+ stoobly_agent-1.8.5.dist-info/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
750
+ stoobly_agent-1.8.5.dist-info/METADATA,sha256=s6qQBEtGsqNOLm2JIOEX_M8O9Y0CEuzorBfg-umAM2U,3087
751
+ stoobly_agent-1.8.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
752
+ stoobly_agent-1.8.5.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
753
+ stoobly_agent-1.8.5.dist-info/RECORD,,