22 lib ,
33 buildPythonPackage ,
44 cliff ,
5- fetchPypi ,
5+ fetchFromGitHub ,
66 iso8601 ,
77 keystoneauth1 ,
88 openstackdocstheme ,
1919 requests ,
2020 setuptools ,
2121 sphinxHook ,
22- stestr ,
22+ stestrCheckHook ,
2323 testscenarios ,
24+ versionCheckHook ,
2425} :
2526
26- buildPythonPackage rec {
27+ buildPythonPackage ( finalAttrs : {
2728 pname = "python-heatclient" ;
2829 version = "5.0.0" ;
2930 pyproject = true ;
3031
31- src = fetchPypi {
32- pname = "python_heatclient" ;
33- inherit version ;
34- hash = "sha256-q3CtG+bRPo9gNHl6KJSutDU33EKUun/7C0pBe1ahpx4=" ;
32+ src = fetchFromGitHub {
33+ owner = "openstack" ;
34+ repo = "python-heatclient" ;
35+ tag = finalAttrs . version ;
36+ hash = "sha256-BpxUUQTBZLR89ks31q5BcBajIP2vcD3Oot1dsXLalX4=" ;
3537 } ;
3638
39+ env . PBR_VERSION = finalAttrs . version ;
40+
3741 build-system = [
3842 openstackdocstheme
3943 python-openstackclient
4044 setuptools
45+ pbr
4146 sphinxHook
4247 ] ;
4348
@@ -51,37 +56,73 @@ buildPythonPackage rec {
5156 oslo-i18n
5257 oslo-serialization
5358 oslo-utils
54- pbr
5559 prettytable
5660 python-swiftclient
5761 pyyaml
5862 requests
5963 ] ;
6064
6165 nativeCheckInputs = [
62- stestr
66+ stestrCheckHook
6367 testscenarios
6468 requests-mock
6569 ] ;
6670
67- checkPhase = ''
68- runHook preCheck
69-
70- stestr run -e <(echo "
71- heatclient.tests.unit.test_common_http.HttpClientTest.test_get_system_ca_file
72- heatclient.tests.unit.test_deployment_utils.TempURLSignalTest.test_create_temp_url
73- ")
71+ # These tests are failing on Python 3.14 because request.pathname2url fails to add // after the protocol's name.
72+ # https://github.com/NixOS/nixpkgs/pull/488828#:~:text=discuss%2Epython%2Eorg%2Ft%2Fpathname2url%2Dchanges%2Din%2Dpython%2D3%2D14%2Dbreaking%2Dpip%2Dtests%2F97091
73+ disabledTests = [
74+ "heatclient.tests.unit.test_shell.ShellTestConfig.test_config_create"
75+ "heatclient.tests.unit.test_shell.ShellTestStandaloneToken.test_stack_create_param_file"
76+ "heatclient.tests.unit.test_template_utils.TestTemplateGetFileFunctions.test_hot_template"
77+ "heatclient.tests.unit.test_template_utils.TestTemplateTypeFunctions.test_hot_template"
78+ "heatclient.tests.unit.test_utils.TestURLFunctions.test_get_template_url"
79+ "heatclient.tests.unit.test_shell.ShellTestStandaloneToken.test_stack_create_only_param_file"
80+ "heatclient.tests.unit.test_shell.ShellTestUserPass.test_stack_create_param_file"
81+ "heatclient.tests.unit.test_template_utils.TestTemplateGetFileFunctions.test_hot_template_same_file"
82+ "heatclient.tests.unit.test_template_utils.ShellEnvironmentTest.test_process_multiple_environments_empty_registry"
83+ "heatclient.tests.unit.test_template_utils.ShellEnvironmentTest.test_process_multiple_environments_default_resources"
84+ "heatclient.tests.unit.test_shell.ShellTestUserPassKeystoneV3.test_stack_create_only_param_file"
85+ "heatclient.tests.unit.test_template_utils.ShellEnvironmentTest.test_ignore_env_keys"
86+ "heatclient.tests.unit.test_template_utils.ShellEnvironmentTest.test_process_multiple_environments_and_files"
87+ "heatclient.tests.unit.test_template_utils.ShellEnvironmentTest.test_process_environment_empty_file"
88+ "heatclient.tests.unit.test_shell.ShellTestToken.test_stack_create_param_file"
89+ "heatclient.tests.unit.test_template_utils.TestGetTemplateContents.test_get_template_contents_parse_error"
90+ "heatclient.tests.unit.test_utils.TestURLFunctions.test_normalise_file_path_to_url_absolute"
91+ "heatclient.tests.unit.test_shell.ShellTestUserPass.test_stack_create_only_param_file"
92+ "heatclient.tests.unit.test_template_utils.ShellEnvironmentTest.test_process_environment_file"
93+ "heatclient.tests.unit.test_shell.ShellTestToken.test_stack_create_only_param_file"
94+ "heatclient.tests.unit.test_template_utils.ShellEnvironmentTest.test_process_environment_relative_file"
95+ "heatclient.tests.unit.test_template_utils.ShellEnvironmentTest.test_process_environment_relative_file_up"
96+ "heatclient.tests.unit.test_shell.ShellTestUserPassKeystoneV3.test_stack_create_param_file"
97+ "heatclient.tests.unit.test_template_utils.TestNestedIncludes.test_env_nested_includes"
98+ "heatclient.tests.unit.test_utils.TestURLFunctions.test_normalise_file_path_to_url_relative"
99+ "heatclient.tests.unit.test_template_utils.TestTemplateInFileFunctions.test_hot_template"
100+ "heatclient.tests.unit.test_template_utils.TestTemplateGetFileFunctions.test_hot_template_outputs"
101+ "heatclient.tests.unit.test_template_utils.ShellEnvironmentTest.test_process_environment_relative_file_tracker"
102+ "heatclient.tests.unit.test_template_utils.ShellEnvironmentTest.test_process_multiple_environments_and_files_tracker"
103+ "heatclient.tests.unit.test_template_utils.TestGetTemplateContents.test_get_template_contents_file_empty"
104+ ] ;
74105
75- runHook postCheck
76- '' ;
106+ pythonImportsCheck = [
107+ "heatclient"
108+ "heatclient.client"
109+ "heatclient.common"
110+ "heatclient.osc"
111+ "heatclient.osc.v1"
112+ "heatclient.tests"
113+ ] ;
77114
78- pythonImportsCheck = [ "heatclient" ] ;
115+ nativeInstallCheckInputs = [
116+ versionCheckHook
117+ ] ;
118+ doInstallCheck = true ;
79119
80120 meta = {
81- description = "Library for Heat built on the Heat orchestration API " ;
121+ description = "OpenStack Heat Client and bindings " ;
82122 mainProgram = "heat" ;
83- homepage = "https://github.com/openstack/python-heatclient" ;
123+ homepage = "https://docs.openstack.org/python-heatclient/latest/" ;
124+ downloadPage = "https://github.com/openstack/python-heatclient/releases/tag/${ finalAttrs . src . tag } " ;
84125 license = lib . licenses . asl20 ;
85126 teams = [ lib . teams . openstack ] ;
86127 } ;
87- }
128+ } )
0 commit comments