Adds Links to Gem Directory and Documentation for Gems (#2922)
* Changed blue text to white that is not meant as a link, made 'View in Director' link work for gems in the inspector, added parsing for gem documentation link Signed-off-by: nggieber <nggieber@amazon.com> * Added documentation links for gems, changed markup for urls in summaries and requirements so they are clickable Signed-off-by: nggieber <nggieber@amazon.com> * Fixed a couple of the documentation links Signed-off-by: nggieber <nggieber@amazon.com> * Added documentation url to edit gem properties script and updated unit tests Signed-off-by: nggieber <nggieber@amazon.com>
This commit is contained in:
@@ -108,7 +108,7 @@ namespace O3DE::ProjectManager
|
||||
{
|
||||
// Gem name, creator and summary
|
||||
m_nameLabel = CreateStyledLabel(m_mainLayout, 18, s_headerColor);
|
||||
m_creatorLabel = CreateStyledLabel(m_mainLayout, 12, s_creatorColor);
|
||||
m_creatorLabel = CreateStyledLabel(m_mainLayout, 12, s_headerColor);
|
||||
m_mainLayout->addSpacing(5);
|
||||
|
||||
// TODO: QLabel seems to have issues determining the right sizeHint() for our font with the given font size.
|
||||
@@ -116,6 +116,8 @@ namespace O3DE::ProjectManager
|
||||
m_summaryLabel = CreateStyledLabel(m_mainLayout, 12, s_textColor);
|
||||
m_mainLayout->addWidget(m_summaryLabel);
|
||||
m_summaryLabel->setWordWrap(true);
|
||||
m_summaryLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
|
||||
m_summaryLabel->setOpenExternalLinks(true);
|
||||
m_mainLayout->addSpacing(5);
|
||||
|
||||
// Directory and documentation links
|
||||
@@ -161,6 +163,8 @@ namespace O3DE::ProjectManager
|
||||
|
||||
m_reqirementsTextLabel = GemInspector::CreateStyledLabel(requrementsLayout, 10, s_textColor);
|
||||
m_reqirementsTextLabel->setWordWrap(true);
|
||||
m_reqirementsTextLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
|
||||
m_reqirementsTextLabel->setOpenExternalLinks(true);
|
||||
|
||||
QSpacerItem* reqirementsSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding);
|
||||
requrementsLayout->addSpacerItem(reqirementsSpacer);
|
||||
|
||||
@@ -38,7 +38,6 @@ namespace O3DE::ProjectManager
|
||||
// Colors
|
||||
inline constexpr static const char* s_headerColor = "#FFFFFF";
|
||||
inline constexpr static const char* s_textColor = "#DDDDDD";
|
||||
inline constexpr static const char* s_creatorColor = "#94D2FF";
|
||||
|
||||
private slots:
|
||||
void OnSelectionChanged(const QItemSelection& selected, const QItemSelection& deselected);
|
||||
|
||||
@@ -95,7 +95,6 @@ namespace O3DE::ProjectManager
|
||||
gemCreatorRect.moveTo(contentRect.left(), contentRect.top() + gemNameRect.height());
|
||||
|
||||
painter->setFont(standardFont);
|
||||
painter->setPen(m_linkColor);
|
||||
gemCreatorRect = painter->boundingRect(gemCreatorRect, Qt::TextSingleLine, gemCreator);
|
||||
painter->drawText(gemCreatorRect, Qt::TextSingleLine, gemCreator);
|
||||
|
||||
|
||||
@@ -646,6 +646,7 @@ namespace O3DE::ProjectManager
|
||||
{
|
||||
GemInfo gemInfo;
|
||||
gemInfo.m_path = Py_To_String(path);
|
||||
gemInfo.m_directoryLink = gemInfo.m_path;
|
||||
|
||||
auto data = m_manifest.attr("get_gem_json_data")(pybind11::none(), path, pyProjectPath);
|
||||
if (pybind11::isinstance<pybind11::dict>(data))
|
||||
@@ -661,6 +662,7 @@ namespace O3DE::ProjectManager
|
||||
gemInfo.m_version = "";
|
||||
gemInfo.m_requirement = Py_To_String_Optional(data, "requirements", "");
|
||||
gemInfo.m_creator = Py_To_String_Optional(data, "origin", "");
|
||||
gemInfo.m_documentationLink = Py_To_String_Optional(data, "documentation_url", "");
|
||||
|
||||
if (gemInfo.m_creator.contains("Open 3D Engine"))
|
||||
{
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["AWS", "Network", "SDK"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["AWS", "Network", "SDK"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/aws/aws-core/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["AWS", "Framework", "Network"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/aws/aws-gamelift/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["AWS", "Network", "SDK"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Gameplay", "Achievements"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/gameplay/achievements/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Debug", "Utility", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/debug/asset-memory-analyzer/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets", "Utility", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/asset-validation/"
|
||||
}
|
||||
|
||||
+2
-1
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Core"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/atom/atom/"
|
||||
}
|
||||
|
||||
@@ -4,9 +4,10 @@
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Asset",
|
||||
"summary": "The Atom Content Gem provides assets for Atom Renderer and a modified version of the Pixar Look Development Studio (https://renderman.pixar.com/look-development-studio).",
|
||||
"summary": "The Atom Content Gem provides assets for Atom Renderer and a modified version of the <a href='https://renderman.pixar.com/look-development-studio'>Pixar Look Development Studio</a>.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Assets", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/atom/atom-content/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Core", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/atom/atom-ly-integration/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Physics", "Animation"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/amd/atom-tressfx/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Audio", "Utility", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": "Users will need to download Wwise from the Audiokinetic web site: https://www.audiokinetic.com/download/"
|
||||
"requirements": "Users will need to download Wwise from the <a href='https://www.audiokinetic.com/download/'>Audiokinetic Web Site</a>.",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/audio/wwise/audio-engine-wwise/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Audio", "Utility", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/audio/audio-system/"
|
||||
}
|
||||
|
||||
+2
-1
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Physics", "Simulation", "Animation"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/physics/nvidia/nvidia-blast/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/camera/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Framework", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/camera-framework/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Network", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/network/certificate-manager/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Debug", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/debug/crash-reporting/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/custom-asset-example/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Debug", "Tools", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/debug/debug-draw/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets", "Debug", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/dev-textures/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Animation", "Tools", "Simulation"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/animation/emotionfx/"
|
||||
}
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
{
|
||||
"gem_name": "EditorPythonBindings",
|
||||
"display_name": "Editor Python Bindings",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "The Editor Python Bindings Gem provides Python commands for Open 3D Engine Editor functions.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"gem_name": "EditorPythonBindings",
|
||||
"display_name": "Editor Python Bindings",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "The Editor Python Bindings Gem provides Python commands for Open 3D Engine Editor functions.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/python/editor-python-bindings/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/expression-evaluation/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Utility", "Tools", "Design"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/utility/fast-noise/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Gameplay", "Framework", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/gameplay/game-state/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Gameplay", "Sample", "Assets"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/gameplay/game-state-samples/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Input", "Gameplay", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/input/gestures/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Utility", "Tools", "Design"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/utility/gradient-signal/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Framework", "Tools", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/framework/graph-canvas/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Framework", "Tools", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/framework/graph-model/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Network", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/network/http-requestor/"
|
||||
}
|
||||
|
||||
+2
-1
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Debug", "Rendering", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/debug/imgui/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["SDK", "Network"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/sdk/in-app-purchases/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Environment", "Design", "Tools"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/environment/landscape-canvas/"
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Core", "Framework", "Assets"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/core/lmbr-central/"
|
||||
}
|
||||
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Input", "Gameplay", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/input/local-user/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["UI", "Tools", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/ui/lyshine/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["UI", "Sample", "Assets"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/ui/lyshine-examples/"
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Animation", "Tools", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/animation/maestro/"
|
||||
}
|
||||
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Gameplay", "Sample"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/ui/message-popup/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Gameplay", "Network", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/network/twitch/metastream/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Audio", "Input"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/audio/microphone/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Multiplayer", "Network", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/multiplayer/multiplayer-compression/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Physics", "Simulation", "SDK"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/physics/nvidia/nvidia-cloth/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Sample", "Assets"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/pbs-reference-materials/"
|
||||
}
|
||||
|
||||
+2
-1
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Physics", "Simulation", "SDK"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/physics/nvidia/physx/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Physics", "Simulation", "Debug"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/physics/nvidia/physx-debug/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Physics", "Simulation", "Sample"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/physics/nvidia/physx-samples/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets", "Utility", "Core"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/prefab/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Network", "Gameplay", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/network/presence/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets", "Sample", "Debug"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/primitive-assets/"
|
||||
}
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
{
|
||||
"gem_name": "PythonAssetBuilder",
|
||||
"display_name": "Python Asset Builder",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Python Asset Builder Gem provides functionality to implement custom asset builders in Python for Asset Processor.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Assets", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"gem_name": "PythonAssetBuilder",
|
||||
"display_name": "Python Asset Builder",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Python Asset Builder Gem provides functionality to implement custom asset builders in Python for Asset Processor.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Assets", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/python/python-asset-builder/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "UI", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/python/qt-for-python/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Debug", "SDK"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/debug/rad/rad-telemetry/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Utility", "Gameplay"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/utility/save-data/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Debug", "Sample"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/utility/scene-logging-example/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets", "Tools", "Core"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/scene-processing/"
|
||||
}
|
||||
|
||||
+11
-10
@@ -1,12 +1,13 @@
|
||||
{
|
||||
"gem_name": "ScriptCanvas",
|
||||
"display_name": "Script Canvas",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "The Script Canvas Gem provides Open 3D Engine's visual scripting environment, Script Canvas.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Tools", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"gem_name": "ScriptCanvas",
|
||||
"display_name": "Script Canvas",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "The Script Canvas Gem provides Open 3D Engine's visual scripting environment, Script Canvas.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Tools", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/script-canvas/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Utility", "Debug"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/script-canvas-developer/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Physics", "Simulation"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/script-canvas-physics/"
|
||||
}
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
{
|
||||
"gem_name": "ScriptCanvasTesting",
|
||||
"display_name": "Script Canvas Testing",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "The Script Canvas Testing Gem provides a framework for testing for and with Script Canvas.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Debug", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"gem_name": "ScriptCanvasTesting",
|
||||
"display_name": "Script Canvas Testing",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Tool",
|
||||
"summary": "The Script Canvas Testing Gem provides a framework for testing for and with Script Canvas.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Debug", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/script-canvas-testing/"
|
||||
}
|
||||
|
||||
+11
-10
@@ -1,12 +1,13 @@
|
||||
{
|
||||
"gem_name": "ScriptEvents",
|
||||
"display_name": "Script Events",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Script Events Gem provides a framework for creating event assets usable from any scripting solution in Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Framework", "Gameplay"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"gem_name": "ScriptEvents",
|
||||
"display_name": "Script Events",
|
||||
"license": "Apache-2.0 Or MIT",
|
||||
"origin": "Open 3D Engine - o3de.org",
|
||||
"type": "Code",
|
||||
"summary": "The Script Events Gem provides a framework for creating event assets usable from any scripting solution in Open 3D Engine.",
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "Framework", "Gameplay"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/script-events/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Scripting", "UI", "Animation"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
}
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/scripted-entity-tweener/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Gameplay", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/starting-point-camera/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Input", "Gameplay", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/input/starting-point-input/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Input", "Gameplay", "Scripting"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/input/starting-point-movement/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Environment", "Utility", "Design"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/environment/surface-data/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Assets", "Debug", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/test-asset-builder/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Assets", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/utility/texture-atlas/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Gameplay", "Simulation", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/gameplay/tick-bus-order-viewer/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Network", "SDK", "Multiplayer"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/network/twitch/twitch/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["UI", "Assets", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/ui/ui-basics/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Environment", "Tools", "Design"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/environment/vegetation/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Rendering", "Framework"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/video-playback-framework/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Input", "Gameplay"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/input/virtual-gamepad/"
|
||||
}
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"canonical_tags": ["Gem"],
|
||||
"user_tags": ["Design", "Tools", "Utility"],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/design/white-box/"
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ def edit_gem_props(gem_path: pathlib.Path = None,
|
||||
new_summary: str = None,
|
||||
new_icon: str = None,
|
||||
new_requirements: str = None,
|
||||
new_documentation_url: str = None,
|
||||
new_tags: list or str = None,
|
||||
remove_tags: list or str = None,
|
||||
replace_tags: list or str = None,
|
||||
@@ -90,7 +91,9 @@ def edit_gem_props(gem_path: pathlib.Path = None,
|
||||
if new_icon:
|
||||
update_key_dict['icon_path'] = new_icon
|
||||
if new_requirements:
|
||||
update_key_dict['icon_requirements'] = new_requirements
|
||||
update_key_dict['requirements'] = new_requirements
|
||||
if new_documentation_url:
|
||||
update_key_dict['documentation_url'] = new_documentation_url
|
||||
|
||||
update_key_dict['user_tags'] = update_values_in_key_list(gem_json_data.get('user_tags', []), new_tags,
|
||||
remove_tags, replace_tags)
|
||||
@@ -110,6 +113,7 @@ def _edit_gem_props(args: argparse) -> int:
|
||||
args.gem_summary,
|
||||
args.gem_icon,
|
||||
args.gem_requirements,
|
||||
args.gem_documentation_url,
|
||||
args.add_tags,
|
||||
args.remove_tags,
|
||||
args.replace_tags)
|
||||
@@ -129,20 +133,22 @@ def add_parser_args(parser):
|
||||
group.add_argument('-go', '--gem-origin', type=str, required=False,
|
||||
help='Sets description for gem origin.')
|
||||
group.add_argument('-gt', '--gem-type', type=str, required=False, choices=['Code', 'Tool', 'Asset'],
|
||||
help='Sets the gem type. Can only be one of the selected choices')
|
||||
help='Sets the gem type. Can only be one of the selected choices.')
|
||||
group.add_argument('-gs', '--gem-summary', type=str, required=False,
|
||||
help='Sets the summary description of the gem.')
|
||||
group.add_argument('-gi', '--gem-icon', type=str, required=False,
|
||||
help='Sets the path to the projects icon resource.')
|
||||
group.add_argument('-gr', '--gem-requirements', type=str, required=False,
|
||||
help='Sets the description of the requirements needed to use the gem')
|
||||
help='Sets the description of the requirements needed to use the gem.')
|
||||
group.add_argument('-gdu', '--gem-documentation-url', type=str, required=False,
|
||||
help='Sets the url for documentation of the gem.')
|
||||
group = parser.add_mutually_exclusive_group(required=False)
|
||||
group.add_argument('-at', '--add-tags', type=str, nargs='*', required=False,
|
||||
help='Adds tag(s) to user_tags property. Can be specified multiple times')
|
||||
help='Adds tag(s) to user_tags property. Can be specified multiple times.')
|
||||
group.add_argument('-dt', '--remove-tags', type=str, nargs='*', required=False,
|
||||
help='Removes tag(s) from the user_tags property. Can be specified multiple times')
|
||||
help='Removes tag(s) from the user_tags property. Can be specified multiple times.')
|
||||
group.add_argument('-rt', '--replace-tags', type=str, nargs='*', required=False,
|
||||
help='Replace tag(s) in user_tags property. Can be specified multiple times')
|
||||
help='Replace tag(s) in user_tags property. Can be specified multiple times.')
|
||||
parser.set_defaults(func=_edit_gem_props)
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +29,8 @@ TEST_GEM_JSON_PAYLOAD = '''
|
||||
"TestGem"
|
||||
],
|
||||
"icon_path": "preview.png",
|
||||
"requirements": ""
|
||||
"requirements": "",
|
||||
"documentation_url": "https://o3de.org/docs/"
|
||||
}
|
||||
'''
|
||||
|
||||
@@ -44,24 +45,26 @@ def init_gem_json_data(request):
|
||||
@pytest.mark.usefixtures('init_gem_json_data')
|
||||
class TestEditGemProperties:
|
||||
@pytest.mark.parametrize("gem_path, gem_name, gem_new_name, gem_display, gem_origin,\
|
||||
gem_type, gem_summary, gem_icon, gem_requirements,\
|
||||
gem_type, gem_summary, gem_icon, gem_requirements, gem_documentation_url,\
|
||||
add_tags, remove_tags, replace_tags, expected_tags, expected_result", [
|
||||
pytest.param(pathlib.PurePath('D:/TestProject'),
|
||||
None, 'TestGem2', 'New Gem Name', 'O3DE', 'Code', 'Gem that exercises Default Gem Template',
|
||||
'preview.png', '',
|
||||
'new_preview.png', 'Do this extra thing', 'https://o3de.org/docs/user-guide/gems/',
|
||||
['Physics', 'Rendering', 'Scripting'], None, None, ['TestGem', 'Physics', 'Rendering', 'Scripting'],
|
||||
0),
|
||||
pytest.param(None,
|
||||
'TestGem2', None, 'New Gem Name', 'O3DE', 'Asset', 'Gem that exercises Default Gem Template',
|
||||
'preview.png', '', None, ['Physics'], None, ['TestGem', 'Rendering', 'Scripting'], 0),
|
||||
'new_preview.png', 'Do this extra thing', 'https://o3de.org/docs/user-guide/gems/', None,
|
||||
['Physics'], None, ['TestGem', 'Rendering', 'Scripting'], 0),
|
||||
pytest.param(None,
|
||||
'TestGem2', None, 'New Gem Name', 'O3DE', 'Tool', 'Gem that exercises Default Gem Template',
|
||||
'preview.png', '', None, None, ['Animation', 'TestGem'], ['Animation', 'TestGem'], 0)
|
||||
'new_preview.png', 'Do this extra thing', 'https://o3de.org/docs/user-guide/gems/', None,
|
||||
None, ['Animation', 'TestGem'], ['Animation', 'TestGem'], 0)
|
||||
]
|
||||
)
|
||||
def test_edit_gem_properties(self, gem_path, gem_name, gem_new_name, gem_display, gem_origin,
|
||||
gem_type, gem_summary, gem_icon, gem_requirements,
|
||||
add_tags, remove_tags, replace_tags,
|
||||
gem_type, gem_summary, gem_icon, gem_requirements,
|
||||
gem_documentation_url, add_tags, remove_tags, replace_tags,
|
||||
expected_tags, expected_result):
|
||||
|
||||
def get_gem_json_data(gem_path: pathlib.Path) -> dict:
|
||||
@@ -79,7 +82,7 @@ class TestEditGemProperties:
|
||||
patch('o3de.manifest.get_registered', side_effect=get_gem_path) as get_registered_patch:
|
||||
result = gem_properties.edit_gem_props(gem_path, gem_name, gem_new_name, gem_display, gem_origin,
|
||||
gem_type, gem_summary, gem_icon, gem_requirements,
|
||||
add_tags, remove_tags, replace_tags)
|
||||
gem_documentation_url, add_tags, remove_tags, replace_tags)
|
||||
assert result == expected_result
|
||||
if gem_new_name:
|
||||
assert self.gem_json.data.get('gem_name', '') == gem_new_name
|
||||
@@ -94,6 +97,8 @@ class TestEditGemProperties:
|
||||
if gem_icon:
|
||||
assert self.gem_json.data.get('icon_path', '') == gem_icon
|
||||
if gem_requirements:
|
||||
assert self.gem_json.data.get('requirments', '') == gem_requirements
|
||||
assert self.gem_json.data.get('requirements', '') == gem_requirements
|
||||
if gem_documentation_url:
|
||||
assert self.gem_json.data.get('documentation_url', '') == gem_documentation_url
|
||||
|
||||
assert set(self.gem_json.data.get('user_tags', [])) == set(expected_tags)
|
||||
|
||||
Reference in New Issue
Block a user