From 2857d9bf5c3ba8bf7bb44094f2dd10e1ae90a964 Mon Sep 17 00:00:00 2001
From: chris48s <chris48s@users.noreply.github.com>
Date: Mon, 6 May 2024 19:58:12 +0100
Subject: [PATCH] fix [pypi] status badge when package has no 'Development
 Status' classifier (#10107)

---
 services/pypi/pypi-status.service.js | 7 ++++++-
 services/pypi/pypi-status.tester.js  | 4 ++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/services/pypi/pypi-status.service.js b/services/pypi/pypi-status.service.js
index 769c376c57..0ba95bd141 100644
--- a/services/pypi/pypi-status.service.js
+++ b/services/pypi/pypi-status.service.js
@@ -28,6 +28,7 @@ export default class PypiStatus extends PypiBase {
       stable: 'brightgreen',
       mature: 'brightgreen',
       inactive: 'red',
+      unknown: 'lightgrey',
     }[status]
 
     return {
@@ -48,7 +49,7 @@ export default class PypiStatus extends PypiBase {
     // - Development Status :: 6 - Mature
     // - Development Status :: 7 - Inactive
     // https://pypi.org/pypi?%3Aaction=list_classifiers
-    const status = parseClassifiers(
+    let status = parseClassifiers(
       packageData,
       /^Development Status :: (\d - \S+)$/,
     )
@@ -57,6 +58,10 @@ export default class PypiStatus extends PypiBase {
       .map(classifier => classifier.replace(/production\/stable/i, 'stable'))
       .pop()
 
+    if (!status) {
+      status = 'Unknown'
+    }
+
     return this.constructor.render({ status })
   }
 }
diff --git a/services/pypi/pypi-status.tester.js b/services/pypi/pypi-status.tester.js
index 764254fe0e..e2f32bb8e9 100644
--- a/services/pypi/pypi-status.tester.js
+++ b/services/pypi/pypi-status.tester.js
@@ -13,6 +13,10 @@ t.create('status (valid, beta)')
   .get('/django/2.0rc1.json')
   .expectBadge({ label: 'status', message: 'beta' })
 
+t.create('status (status not specified)')
+  .get('/arcgis2geojson/3.0.2.json')
+  .expectBadge({ label: 'status', message: 'unknown' })
+
 t.create('status (invalid)')
   .get('/not-a-package.json')
   .expectBadge({ label: 'status', message: 'package or version not found' })
-- 
GitLab