From b21d78eed33eff09f2a8676f563afd3a46a477e1 Mon Sep 17 00:00:00 2001 From: Paula Camargo Date: Thu, 15 Feb 2024 13:42:44 -0800 Subject: [PATCH 1/7] Add autoStartBrowser and serverReady --- package.json | 5 +++++ src/extension/debugger/configuration/resolvers/launch.ts | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/package.json b/package.json index 2f368f43..4239b168 100644 --- a/package.json +++ b/package.json @@ -327,6 +327,11 @@ "description": "Path (fully qualified) to the Python debug adapter executable.", "type": "string" }, + "autoStartBrowser": { + "default": false, + "description": "Open external browser to launch the application", + "type": "boolean" + }, "django": { "default": false, "description": "Django debugging.", diff --git a/src/extension/debugger/configuration/resolvers/launch.ts b/src/extension/debugger/configuration/resolvers/launch.ts index 5230637b..3a28a661 100644 --- a/src/extension/debugger/configuration/resolvers/launch.ts +++ b/src/extension/debugger/configuration/resolvers/launch.ts @@ -50,6 +50,8 @@ export class LaunchConfigurationResolver extends BaseConfigurationResolver debugConfiguration.debugOptions!.indexOf(item) === pos, @@ -140,6 +142,13 @@ export class LaunchConfigurationResolver extends BaseConfigurationResolver Date: Thu, 15 Feb 2024 13:42:56 -0800 Subject: [PATCH 2/7] add tests --- .../resolvers/launch.unit.test.ts | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/test/unittest/configuration/resolvers/launch.unit.test.ts b/src/test/unittest/configuration/resolvers/launch.unit.test.ts index b2dd2e1a..fb5762af 100644 --- a/src/test/unittest/configuration/resolvers/launch.unit.test.ts +++ b/src/test/unittest/configuration/resolvers/launch.unit.test.ts @@ -921,6 +921,40 @@ getInfoPerOS().forEach(([osName, osType, path]) => { expect(debugConfig).to.have.property('debugOptions'); expect((debugConfig as DebugConfiguration).debugOptions).contains(DebugOptions.Jinja); }); + + const testsForautoStartBrowser= [ + { + autoStartBrowser: true, + module: "flask", + }, + { + autoStartBrowser: true, + django: true, + }, + + ] + + test.only('Add serverReadyAction for Django and Flask', async () => { + const pythonPath = `PythonPath_${new Date().toString()}`; + const workspaceFolder = createMoqWorkspaceFolder(__dirname); + const pythonFile = 'xyz.py'; + setupIoc(pythonPath); + setupActiveEditor(pythonFile, PYTHON_LANGUAGE); + const expectedServerReadyAction = { + "pattern": ".*(https?:\\/\\/\\S+:[0-9]+\\/?).*", + "uriFormat": "%s", + "action": "openExternally" + }; + testsForautoStartBrowser.forEach(async (testParams) => { + const debugConfig = await resolveDebugConfiguration(workspaceFolder, { + ...launch, + ...testParams, + }); + expect(debugConfig).to.have.property('serverReadyAction', expectedServerReadyAction); + expect(debugConfig).to.have.property('debugOptions'); + expect((debugConfig as DebugConfiguration).debugOptions).to.contain(DebugOptions.RedirectOutput); + }); + }); async function testSetting( requestType: 'launch' | 'attach', From 6ff019b15dfe02a0e1ee763b19a1c3ff6468a731 Mon Sep 17 00:00:00 2001 From: Paula Camargo Date: Thu, 15 Feb 2024 13:43:37 -0800 Subject: [PATCH 3/7] fix lint --- .../debugger/configuration/resolvers/launch.ts | 10 ++++------ .../configuration/resolvers/launch.unit.test.ts | 15 +++++++-------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/extension/debugger/configuration/resolvers/launch.ts b/src/extension/debugger/configuration/resolvers/launch.ts index 3a28a661..474ba04c 100644 --- a/src/extension/debugger/configuration/resolvers/launch.ts +++ b/src/extension/debugger/configuration/resolvers/launch.ts @@ -50,8 +50,6 @@ export class LaunchConfigurationResolver extends BaseConfigurationResolver debugConfiguration.debugOptions!.indexOf(item) === pos, @@ -144,10 +142,10 @@ export class LaunchConfigurationResolver extends BaseConfigurationResolver { expect(debugConfig).to.have.property('debugOptions'); expect((debugConfig as DebugConfiguration).debugOptions).contains(DebugOptions.Jinja); }); - - const testsForautoStartBrowser= [ + + const testsForautoStartBrowser = [ { autoStartBrowser: true, - module: "flask", + module: 'flask', }, { autoStartBrowser: true, django: true, }, - - ] + ]; test.only('Add serverReadyAction for Django and Flask', async () => { const pythonPath = `PythonPath_${new Date().toString()}`; @@ -941,9 +940,9 @@ getInfoPerOS().forEach(([osName, osType, path]) => { setupIoc(pythonPath); setupActiveEditor(pythonFile, PYTHON_LANGUAGE); const expectedServerReadyAction = { - "pattern": ".*(https?:\\/\\/\\S+:[0-9]+\\/?).*", - "uriFormat": "%s", - "action": "openExternally" + pattern: '.*(https?:\\/\\/\\S+:[0-9]+\\/?).*', + uriFormat: '%s', + action: 'openExternally', }; testsForautoStartBrowser.forEach(async (testParams) => { const debugConfig = await resolveDebugConfiguration(workspaceFolder, { From fd96f21aa2dab41d7cfe05d602d75d9d9f41ce29 Mon Sep 17 00:00:00 2001 From: Paula Camargo Date: Thu, 15 Feb 2024 13:50:10 -0800 Subject: [PATCH 4/7] fix tests --- src/test/unittest/configuration/resolvers/launch.unit.test.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/unittest/configuration/resolvers/launch.unit.test.ts b/src/test/unittest/configuration/resolvers/launch.unit.test.ts index 9a46b3db..787362a0 100644 --- a/src/test/unittest/configuration/resolvers/launch.unit.test.ts +++ b/src/test/unittest/configuration/resolvers/launch.unit.test.ts @@ -950,8 +950,6 @@ getInfoPerOS().forEach(([osName, osType, path]) => { ...testParams, }); expect(debugConfig).to.have.property('serverReadyAction', expectedServerReadyAction); - expect(debugConfig).to.have.property('debugOptions'); - expect((debugConfig as DebugConfiguration).debugOptions).to.contain(DebugOptions.RedirectOutput); }); }); From 652627ec25fa618f2bbb1164edd3ca4e02a65ae7 Mon Sep 17 00:00:00 2001 From: Paula Camargo Date: Thu, 15 Feb 2024 13:54:11 -0800 Subject: [PATCH 5/7] remove only in test --- src/test/unittest/configuration/resolvers/launch.unit.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/unittest/configuration/resolvers/launch.unit.test.ts b/src/test/unittest/configuration/resolvers/launch.unit.test.ts index 787362a0..9039781e 100644 --- a/src/test/unittest/configuration/resolvers/launch.unit.test.ts +++ b/src/test/unittest/configuration/resolvers/launch.unit.test.ts @@ -933,7 +933,7 @@ getInfoPerOS().forEach(([osName, osType, path]) => { }, ]; - test.only('Add serverReadyAction for Django and Flask', async () => { + test('Add serverReadyAction for Django and Flask', async () => { const pythonPath = `PythonPath_${new Date().toString()}`; const workspaceFolder = createMoqWorkspaceFolder(__dirname); const pythonFile = 'xyz.py'; From d901fe70ae294dff155807b1731695d08403d03b Mon Sep 17 00:00:00 2001 From: Paula Camargo Date: Thu, 15 Feb 2024 14:52:52 -0800 Subject: [PATCH 6/7] send telemetry --- src/extension/debugger/configuration/resolvers/base.ts | 3 ++- src/extension/telemetry/index.ts | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/extension/debugger/configuration/resolvers/base.ts b/src/extension/debugger/configuration/resolvers/base.ts index 78cfda80..844fbd59 100644 --- a/src/extension/debugger/configuration/resolvers/base.ts +++ b/src/extension/debugger/configuration/resolvers/base.ts @@ -245,10 +245,11 @@ export abstract class BaseConfigurationResolver stopOnEntry: !!debugConfiguration.stopOnEntry, showReturnValue: !!debugConfiguration.showReturnValue, subProcess: !!debugConfiguration.subProcess, + autoStartBrowser: !!debugConfiguration, watson: name.toLowerCase().indexOf('watson') >= 0, pyspark: name.toLowerCase().indexOf('pyspark') >= 0, gevent: name.toLowerCase().indexOf('gevent') >= 0, - scrapy: moduleName.toLowerCase() === 'scrapy', + scrapy: moduleName.toLowerCase() === 'scrapy' }; sendTelemetryEvent(EventName.DEBUGGER, undefined, telemetryProps); } diff --git a/src/extension/telemetry/index.ts b/src/extension/telemetry/index.ts index 14913dd5..6c0d2c78 100644 --- a/src/extension/telemetry/index.ts +++ b/src/extension/telemetry/index.ts @@ -570,6 +570,12 @@ export interface IEventNamePropertyMapping { * @type {boolean} */ scrapy: boolean; + /** + * Whether degbugging with autoStartBrowser. + * + * @type {boolean} + */ + autoStartBrowser: boolean; }; /** * Telemetry event sent when attaching to child process From dc12a9fc3c106805bdb7b20d6b15d99b31f38221 Mon Sep 17 00:00:00 2001 From: Paula Camargo Date: Thu, 15 Feb 2024 14:55:12 -0800 Subject: [PATCH 7/7] fix lint --- src/extension/debugger/configuration/resolvers/base.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extension/debugger/configuration/resolvers/base.ts b/src/extension/debugger/configuration/resolvers/base.ts index 844fbd59..7775ae0d 100644 --- a/src/extension/debugger/configuration/resolvers/base.ts +++ b/src/extension/debugger/configuration/resolvers/base.ts @@ -249,7 +249,7 @@ export abstract class BaseConfigurationResolver watson: name.toLowerCase().indexOf('watson') >= 0, pyspark: name.toLowerCase().indexOf('pyspark') >= 0, gevent: name.toLowerCase().indexOf('gevent') >= 0, - scrapy: moduleName.toLowerCase() === 'scrapy' + scrapy: moduleName.toLowerCase() === 'scrapy', }; sendTelemetryEvent(EventName.DEBUGGER, undefined, telemetryProps); }