Skip to content

Commit a287854

Browse files
Add Interpreter override tests (#7221)
### Intent Resloves #6823 to add interpreter override tests. (from #6203 adn #6206) ### Approach I just extended the include-exclude tests. Sets the alt interpreter as the only interpreter, and checks that the default is no longer present. ### QA Notes @:interpreter <!-- Add additional information for QA on how to validate the change, paying special attention to the level of risk, adjacent areas that could be affected by the change, and any important contextual information not present in the linked issues. -->
1 parent 056df12 commit a287854

File tree

1 file changed

+63
-2
lines changed

1 file changed

+63
-2
lines changed

test/e2e/tests/interpreters/includes-excludes.test.ts

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,14 @@ test.describe('Interpreter: Excludes', {
6060
return fail('Alternate R version not set');
6161
}
6262

63+
const failMessage = 'selectInterpreter was supposed to fail as /opt/R/4.4.2 was excluded';
6364
try {
6465
await sessions.start('rAlt', { reuse: false });
65-
fail('selectInterpreter was supposed to fail as /opt/R/4.4.2 was excluded');
66+
fail(failMessage);
6667
} catch (e) {
68+
if (e instanceof Error && e.message.includes(failMessage)) {
69+
fail(failMessage);
70+
}
6771
// Success = interpreter was correctly excluded
6872
}
6973

@@ -84,11 +88,68 @@ test.describe('Interpreter: Excludes', {
8488
try {
8589
await sessions.start('pythonAlt', { reuse: false });
8690
fail(failMessage);
87-
} catch {
91+
} catch (e) {
92+
if (e instanceof Error && e.message.includes(failMessage)) {
93+
fail(failMessage);
94+
}
8895
// Success = interpreter was correctly excluded
8996
}
9097

9198
await app.code.driver.page.keyboard.press('Escape');
9299
});
93100

94101
});
102+
103+
test.describe('Interpreter: Override', {
104+
tag: [tags.INTERPRETER, tags.WEB]
105+
}, () => {
106+
107+
test.beforeAll(async function ({ userSettings }) {
108+
await userSettings.set([['python.interpreters.override', '["/home/runner/scratch/python-env"]']], true);
109+
await userSettings.set([['positron.r.interpreters.override', '["/opt/R/4.4.2/bin/R"]']], true);
110+
});
111+
112+
test('R - Can Override Interpreter Discovery', async function ({ app, sessions }) {
113+
114+
const alternateR = process.env.POSITRON_R_ALT_VER_SEL;
115+
116+
if (!alternateR) {
117+
return fail('Alternate R version not set');
118+
}
119+
120+
const failMessage = 'selectInterpreter was supposed to fail as /opt/R/4.4.2 was overriden';
121+
try {
122+
await sessions.start('r', { reuse: false });
123+
fail(failMessage);
124+
} catch (e) {
125+
if (e instanceof Error && e.message.includes(failMessage)) {
126+
fail(failMessage);
127+
}
128+
// Success = interpreter was correctly overriden
129+
}
130+
await app.code.driver.page.keyboard.press('Escape');
131+
});
132+
133+
test('Python - Can Override Interpreter Discovery', async function ({ app, userSettings, sessions }) {
134+
135+
const alternatePython = process.env.POSITRON_PY_ALT_VER_SEL;
136+
137+
if (!alternatePython) {
138+
return fail('Alternate Python version not set');
139+
}
140+
141+
const failMessage = 'selectInterpreter was supposed to fail as ~/.pyenv was overriden';
142+
try {
143+
await sessions.start('python', { reuse: false });
144+
fail(failMessage);
145+
} catch (e) {
146+
if (e instanceof Error && e.message.includes(failMessage)) {
147+
fail(failMessage);
148+
}
149+
// Success = interpreter was correctly overriden
150+
}
151+
152+
await app.code.driver.page.keyboard.press('Escape');
153+
});
154+
155+
});

0 commit comments

Comments
 (0)