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.
- stoobly_agent/__init__.py +1 -1
- stoobly_agent/app/api/headers_controller.py +1 -1
- stoobly_agent/app/api/query_params_controller.py +4 -4
- stoobly_agent/app/cli/snapshot_cli.py +57 -0
- stoobly_agent/app/cli/types/snapshot_migration.py +61 -0
- stoobly_agent/app/models/adapters/orm/request/mitmproxy_adapter.py +1 -1
- stoobly_agent/app/models/adapters/python/request/__init__.py +2 -2
- stoobly_agent/app/models/adapters/python/request/mitmproxy_adapter.py +1 -1
- stoobly_agent/app/models/adapters/python/request/raw_adapter.py +2 -2
- stoobly_agent/app/models/factories/resource/local_db/header_adapter.py +28 -8
- stoobly_agent/app/models/factories/resource/local_db/helpers/log.py +7 -0
- stoobly_agent/app/models/factories/resource/local_db/helpers/log_event.py +10 -0
- stoobly_agent/app/models/factories/resource/local_db/helpers/request_snapshot.py +20 -0
- stoobly_agent/app/models/factories/resource/local_db/helpers/scenario_snapshot.py +8 -1
- stoobly_agent/app/models/factories/resource/local_db/helpers/snapshot.py +1 -1
- stoobly_agent/app/models/factories/resource/local_db/local_db_adapter.py +3 -0
- stoobly_agent/app/models/factories/resource/local_db/query_param_adapter.py +2 -2
- stoobly_agent/app/models/factories/resource/local_db/request_adapter.py +22 -3
- stoobly_agent/app/models/helpers/apply.py +5 -4
- stoobly_agent/app/models/helpers/create_request_params_service.py +4 -2
- stoobly_agent/app/proxy/intercept_handler.py +6 -2
- stoobly_agent/app/proxy/record/join_request_service.py +22 -10
- stoobly_agent/app/proxy/record/proxy_request.py +9 -0
- stoobly_agent/app/proxy/record/request_string.py +4 -1
- stoobly_agent/app/proxy/record/upload_request_service.py +7 -5
- stoobly_agent/app/proxy/test/helpers/upload_test_service.py +1 -1
- stoobly_agent/config/constants/lifecycle_hooks.py +1 -0
- stoobly_agent/lib/orm/transformers/orm_to_request_transformer.py +74 -2
- stoobly_agent/public/13-es2015.6d3a4fd76d46bfa5f200.js +1 -0
- stoobly_agent/public/13-es5.6d3a4fd76d46bfa5f200.js +1 -0
- stoobly_agent/public/{18-es2015.503207073756a9c8211a.js → 18-es2015.d07dd29def7e2574c5b7.js} +1 -1
- stoobly_agent/public/{18-es5.503207073756a9c8211a.js → 18-es5.d07dd29def7e2574c5b7.js} +1 -1
- stoobly_agent/public/35-es2015.4ffe6f7a196ed1a87fc7.js +1 -0
- stoobly_agent/public/35-es5.4ffe6f7a196ed1a87fc7.js +1 -0
- stoobly_agent/public/index.html +1 -1
- stoobly_agent/public/{main-es2015.d682619f3d6d53d64c6a.js → main-es2015.ce00115b0520fa030f01.js} +1 -1
- stoobly_agent/public/{main-es5.d682619f3d6d53d64c6a.js → main-es5.ce00115b0520fa030f01.js} +1 -1
- stoobly_agent/public/runtime-es2015.b13c22b834b51724d30a.js +1 -0
- stoobly_agent/public/runtime-es5.b13c22b834b51724d30a.js +1 -0
- stoobly_agent/test/app/cli/scenario/scenario_snapshot_test.py +1 -1
- stoobly_agent/test/app/cli/snapshot/lifecycle_hooks_migrate.py +10 -0
- stoobly_agent/test/app/cli/snapshot/snapshot_migrate_test.py +181 -0
- stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION +1 -1
- stoobly_agent/test/app/proxy/replay/trace_context_test.py +36 -3
- {stoobly_agent-1.8.3.dist-info → stoobly_agent-1.8.5.dist-info}/METADATA +1 -1
- {stoobly_agent-1.8.3.dist-info → stoobly_agent-1.8.5.dist-info}/RECORD +49 -46
- stoobly_agent/public/13-es2015.343b0261a8b3b3f4a1fc.js +0 -1
- stoobly_agent/public/13-es5.343b0261a8b3b3f4a1fc.js +0 -1
- stoobly_agent/public/35-es2015.a23419c9c7bff162a8e3.js +0 -1
- stoobly_agent/public/35-es5.a23419c9c7bff162a8e3.js +0 -1
- stoobly_agent/public/runtime-es2015.7130ec4068d875dc38bd.js +0 -1
- stoobly_agent/public/runtime-es5.7130ec4068d875dc38bd.js +0 -1
- {stoobly_agent-1.8.3.dist-info → stoobly_agent-1.8.5.dist-info}/LICENSE +0 -0
- {stoobly_agent-1.8.3.dist-info → stoobly_agent-1.8.5.dist-info}/WHEEL +0 -0
- {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()}([]);
|
@@ -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.
|
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 ['
|
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,12 +1,12 @@
|
|
1
|
-
stoobly_agent/__init__.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
233
|
-
stoobly_agent/app/models/adapters/python/request/mitmproxy_adapter.py,sha256=
|
234
|
-
stoobly_agent/app/models/adapters/python/request/raw_adapter.py,sha256=
|
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=
|
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=
|
260
|
-
stoobly_agent/app/models/factories/resource/local_db/helpers/log_event.py,sha256=
|
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=
|
263
|
-
stoobly_agent/app/models/factories/resource/local_db/helpers/scenario_snapshot.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
289
|
-
stoobly_agent/app/models/helpers/create_request_params_service.py,sha256=
|
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=
|
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
|
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=
|
341
|
-
stoobly_agent/app/proxy/record/request_string.py,sha256=
|
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=
|
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=
|
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=
|
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
|
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.
|
541
|
-
stoobly_agent/public/13-es5.
|
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.
|
551
|
-
stoobly_agent/public/18-es5.
|
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.
|
579
|
-
stoobly_agent/public/35-es5.
|
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
|
644
|
-
stoobly_agent/public/main-es2015.
|
645
|
-
stoobly_agent/public/main-es5.
|
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.
|
649
|
-
stoobly_agent/public/runtime-es5.
|
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=
|
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=
|
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=
|
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.
|
747
|
-
stoobly_agent-1.8.
|
748
|
-
stoobly_agent-1.8.
|
749
|
-
stoobly_agent-1.8.
|
750
|
-
stoobly_agent-1.8.
|
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,,
|