5
5
6
6
from hatch_nodejs_version .metadata_source import NodeJSMetadataHook
7
7
8
-
9
8
TRIVIAL_PYPROJECT_CONTENTS = """
10
9
[build-backend]
11
10
requires = ["hatchling", "hatch-vcs"]
16
15
[tool.hatch.metadata.hooks.nodejs]
17
16
"""
18
17
19
- DEMO_PACKAGE_CONTENTS = """
18
+ TRIVIAL_PACKAGE_CONTENTS = """
20
19
{
21
20
"name": "my-app",
22
21
"version": "1.0.0",
50
49
}
51
50
"""
52
51
53
- EXPECTED_METADATA = {
52
+ TRIVIAL_EXPECTED_METADATA = {
54
53
"license" : "MIT" ,
55
54
"urls" : {
56
- "bug tracker " : "https://www.send-help.com" ,
57
- "repository " : "https://github.com/some/code.git" ,
58
- "homepage " : "https://where-the-heart-is.com" ,
55
+ "Bug Tracker " : "https://www.send-help.com" ,
56
+ "Repository " : "https://github.com/some/code.git" ,
57
+ "Homepage " : "https://where-the-heart-is.com" ,
59
58
},
60
59
"authors" : [
61
60
{
@@ -79,14 +78,14 @@ def test_all_metadata(self, project, alt_package_json):
79
78
# Create a simple project
80
79
package_json = "package.json" if alt_package_json is None else alt_package_json
81
80
(project / "pyproject.toml" ).write_text (TRIVIAL_PYPROJECT_CONTENTS )
82
- (project / package_json ).write_text (DEMO_PACKAGE_CONTENTS )
81
+ (project / package_json ).write_text (TRIVIAL_PACKAGE_CONTENTS )
83
82
84
83
config = {} if alt_package_json is None else {"path" : alt_package_json }
85
84
metadata = {}
86
85
metadata_source = NodeJSMetadataHook (project , config = config )
87
86
metadata_source .update (metadata )
88
87
89
- assert metadata == EXPECTED_METADATA
88
+ assert metadata == TRIVIAL_EXPECTED_METADATA
90
89
91
90
@pytest .mark .parametrize (
92
91
"pyproject_field" ,
@@ -103,7 +102,7 @@ def test_all_metadata(self, project, alt_package_json):
103
102
def test_subset_metadata (self , project , pyproject_field ):
104
103
# Create a simple project
105
104
(project / "pyproject.toml" ).write_text (TRIVIAL_PYPROJECT_CONTENTS )
106
- (project / "package.json" ).write_text (DEMO_PACKAGE_CONTENTS )
105
+ (project / "package.json" ).write_text (TRIVIAL_PACKAGE_CONTENTS )
107
106
108
107
config = {"fields" : [pyproject_field ]}
109
108
@@ -113,26 +112,26 @@ def test_subset_metadata(self, project, pyproject_field):
113
112
114
113
assert pyproject_field in metadata
115
114
assert len (metadata ) == len (config ["fields" ])
116
- assert metadata [pyproject_field ] == EXPECTED_METADATA [pyproject_field ]
115
+ assert metadata [pyproject_field ] == TRIVIAL_EXPECTED_METADATA [pyproject_field ]
117
116
118
117
def test_contributors_as_maintainers (self , project ):
119
118
# Create a simple project
120
119
(project / "pyproject.toml" ).write_text (TRIVIAL_PYPROJECT_CONTENTS )
121
- (project / "package.json" ).write_text (DEMO_PACKAGE_CONTENTS )
120
+ (project / "package.json" ).write_text (TRIVIAL_PACKAGE_CONTENTS )
122
121
123
122
metadata = {}
124
123
metadata_source = NodeJSMetadataHook (
125
124
project , config = {"contributors-as-maintainers" : True }
126
125
)
127
126
metadata_source .update (metadata )
128
127
129
- assert metadata ["authors" ] == EXPECTED_METADATA ["authors" ]
130
- assert metadata ["maintainers" ] == EXPECTED_METADATA ["maintainers" ]
128
+ assert metadata ["authors" ] == TRIVIAL_EXPECTED_METADATA ["authors" ]
129
+ assert metadata ["maintainers" ] == TRIVIAL_EXPECTED_METADATA ["maintainers" ]
131
130
132
131
def test_contributors_as_authors (self , project ):
133
132
# Create a simple project
134
133
(project / "pyproject.toml" ).write_text (TRIVIAL_PYPROJECT_CONTENTS )
135
- (project / "package.json" ).write_text (DEMO_PACKAGE_CONTENTS )
134
+ (project / "package.json" ).write_text (TRIVIAL_PACKAGE_CONTENTS )
136
135
137
136
metadata = {}
138
137
metadata_source = NodeJSMetadataHook (
@@ -142,5 +141,27 @@ def test_contributors_as_authors(self, project):
142
141
143
142
assert (
144
143
metadata ["authors" ]
145
- == EXPECTED_METADATA ["authors" ] + EXPECTED_METADATA ["maintainers" ]
144
+ == TRIVIAL_EXPECTED_METADATA ["authors" ]
145
+ + TRIVIAL_EXPECTED_METADATA ["maintainers" ]
146
+ )
147
+
148
+ def test_labels (self , project ):
149
+ # Create a simple project
150
+ (project / "pyproject.toml" ).write_text (TRIVIAL_PYPROJECT_CONTENTS )
151
+ (project / "package.json" ).write_text (TRIVIAL_PACKAGE_CONTENTS )
152
+
153
+ metadata = {}
154
+ metadata_source = NodeJSMetadataHook (
155
+ project ,
156
+ config = {
157
+ "repository-label" : "the-repository" ,
158
+ "bugs-label" : "the-bug-tracker" ,
159
+ "homepage-label" : "the-homepage" ,
160
+ },
146
161
)
162
+ metadata_source .update (metadata )
163
+
164
+ urls = metadata ["urls" ]
165
+ assert urls ["the-repository" ] == "https://github.com/some/code.git"
166
+ assert urls ["the-bug-tracker" ] == "https://www.send-help.com"
167
+ assert urls ["the-homepage" ] == "https://where-the-heart-is.com"
0 commit comments