Skip to content

Commit f8f637f

Browse files
authored
Replace deprecated PluginDescriptor.isEnabled with PluginManagerCore.isDisabled (#126)
Signed-off-by: Bernát Gábor <bgabor8@bloomberg.net>
1 parent 1d1f312 commit f8f637f

2 files changed

Lines changed: 35 additions & 26 deletions

File tree

src/main/kotlin/com/github/pyvenvmanage/PythonRequiredStartupActivity.kt

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,20 @@ class PythonRequiredStartupActivity : ProjectActivity {
2828
).notify(project)
2929
}
3030

31-
private fun isPythonPluginAvailable(): Boolean =
32-
com.intellij.ide.plugins.PluginManagerCore
33-
.getPlugin(
34-
PluginId.getId("com.intellij.modules.python"),
35-
)?.isEnabled == true ||
31+
private fun isPythonPluginAvailable(): Boolean {
32+
val pythonModuleId = PluginId.getId("com.intellij.modules.python")
33+
val pythonCoreId = PluginId.getId("PythonCore")
34+
return (
3635
com.intellij.ide.plugins.PluginManagerCore
37-
.getPlugin(
38-
PluginId.getId("PythonCore"),
39-
)?.isEnabled == true
36+
.getPlugin(pythonModuleId) != null &&
37+
!com.intellij.ide.plugins.PluginManagerCore
38+
.isDisabled(pythonModuleId)
39+
) ||
40+
(
41+
com.intellij.ide.plugins.PluginManagerCore
42+
.getPlugin(pythonCoreId) != null &&
43+
!com.intellij.ide.plugins.PluginManagerCore
44+
.isDisabled(pythonCoreId)
45+
)
46+
}
4047
}

src/test/kotlin/com/github/pyvenvmanage/PythonRequiredStartupActivityTest.kt

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ class PythonRequiredStartupActivityTest {
3131
private lateinit var notificationGroup: NotificationGroup
3232
private lateinit var notification: Notification
3333
private lateinit var settings: PyVenvManageSettings
34+
private lateinit var pythonModuleId: PluginId
35+
private lateinit var pythonCoreId: PluginId
3436

3537
@BeforeEach
3638
fun setUp() {
@@ -39,6 +41,8 @@ class PythonRequiredStartupActivityTest {
3941
notificationGroup = mockk(relaxed = true)
4042
notification = mockk(relaxed = true)
4143
settings = mockk(relaxed = true)
44+
pythonModuleId = PluginId.getId("com.intellij.modules.python")
45+
pythonCoreId = PluginId.getId("PythonCore")
4246

4347
mockkStatic(NotificationGroupManager::class)
4448
mockkStatic(PluginManagerCore::class)
@@ -65,10 +69,8 @@ class PythonRequiredStartupActivityTest {
6569
fun `does not show notification when python module is available`(): Unit =
6670
runBlocking {
6771
val pythonPlugin: IdeaPluginDescriptor = mockk(relaxed = true)
68-
every { pythonPlugin.isEnabled } returns true
69-
every {
70-
PluginManagerCore.getPlugin(PluginId.getId("com.intellij.modules.python"))
71-
} returns pythonPlugin
72+
every { PluginManagerCore.getPlugin(pythonModuleId) } returns pythonPlugin
73+
every { PluginManagerCore.isDisabled(pythonModuleId) } returns false
7274

7375
PythonRequiredStartupActivity().execute(project)
7476

@@ -79,9 +81,9 @@ class PythonRequiredStartupActivityTest {
7981
fun `does not show notification when PythonCore plugin is available`(): Unit =
8082
runBlocking {
8183
val pythonCorePlugin: IdeaPluginDescriptor = mockk(relaxed = true)
82-
every { pythonCorePlugin.isEnabled } returns true
83-
every { PluginManagerCore.getPlugin(PluginId.getId("com.intellij.modules.python")) } returns null
84-
every { PluginManagerCore.getPlugin(PluginId.getId("PythonCore")) } returns pythonCorePlugin
84+
every { PluginManagerCore.getPlugin(pythonModuleId) } returns null
85+
every { PluginManagerCore.getPlugin(pythonCoreId) } returns pythonCorePlugin
86+
every { PluginManagerCore.isDisabled(pythonCoreId) } returns false
8587

8688
PythonRequiredStartupActivity().execute(project)
8789

@@ -91,8 +93,8 @@ class PythonRequiredStartupActivityTest {
9193
@Test
9294
fun `shows warning notification when python is not available`(): Unit =
9395
runBlocking {
94-
every { PluginManagerCore.getPlugin(PluginId.getId("com.intellij.modules.python")) } returns null
95-
every { PluginManagerCore.getPlugin(PluginId.getId("PythonCore")) } returns null
96+
every { PluginManagerCore.getPlugin(pythonModuleId) } returns null
97+
every { PluginManagerCore.getPlugin(pythonCoreId) } returns null
9698

9799
PythonRequiredStartupActivity().execute(project)
98100

@@ -110,9 +112,9 @@ class PythonRequiredStartupActivityTest {
110112
fun `shows warning when python plugin exists but is disabled`(): Unit =
111113
runBlocking {
112114
val disabledPlugin: IdeaPluginDescriptor = mockk(relaxed = true)
113-
every { disabledPlugin.isEnabled } returns false
114-
every { PluginManagerCore.getPlugin(PluginId.getId("com.intellij.modules.python")) } returns disabledPlugin
115-
every { PluginManagerCore.getPlugin(PluginId.getId("PythonCore")) } returns null
115+
every { PluginManagerCore.getPlugin(pythonModuleId) } returns disabledPlugin
116+
every { PluginManagerCore.isDisabled(pythonModuleId) } returns true
117+
every { PluginManagerCore.getPlugin(pythonCoreId) } returns null
116118

117119
PythonRequiredStartupActivity().execute(project)
118120

@@ -122,8 +124,8 @@ class PythonRequiredStartupActivityTest {
122124
@Test
123125
fun `does not show notification when warning was dismissed`(): Unit =
124126
runBlocking {
125-
every { PluginManagerCore.getPlugin(PluginId.getId("com.intellij.modules.python")) } returns null
126-
every { PluginManagerCore.getPlugin(PluginId.getId("PythonCore")) } returns null
127+
every { PluginManagerCore.getPlugin(pythonModuleId) } returns null
128+
every { PluginManagerCore.getPlugin(pythonCoreId) } returns null
127129
every { settings.dismissedPythonWarning } returns true
128130

129131
PythonRequiredStartupActivity().execute(project)
@@ -134,8 +136,8 @@ class PythonRequiredStartupActivityTest {
134136
@Test
135137
fun `notification includes dont show again action`(): Unit =
136138
runBlocking {
137-
every { PluginManagerCore.getPlugin(PluginId.getId("com.intellij.modules.python")) } returns null
138-
every { PluginManagerCore.getPlugin(PluginId.getId("PythonCore")) } returns null
139+
every { PluginManagerCore.getPlugin(pythonModuleId) } returns null
140+
every { PluginManagerCore.getPlugin(pythonCoreId) } returns null
139141

140142
PythonRequiredStartupActivity().execute(project)
141143

@@ -145,8 +147,8 @@ class PythonRequiredStartupActivityTest {
145147
@Test
146148
fun `dont show again action sets dismissed flag and expires notification`(): Unit =
147149
runBlocking {
148-
every { PluginManagerCore.getPlugin(PluginId.getId("com.intellij.modules.python")) } returns null
149-
every { PluginManagerCore.getPlugin(PluginId.getId("PythonCore")) } returns null
150+
every { PluginManagerCore.getPlugin(pythonModuleId) } returns null
151+
every { PluginManagerCore.getPlugin(pythonCoreId) } returns null
150152

151153
val actionSlot = slot<NotificationAction>()
152154
every { notification.addAction(capture(actionSlot)) } returns notification

0 commit comments

Comments
 (0)