Description: Fixed comparison of inline and nested tables in TOML
Author: Josenilson Ferreira da silva <nilsonfsilva@hotmail.com>
Forwarded: not-needed
Last-Update: 2025-02-01
Index: python-dom-toml/tests/test_decoder.py
===================================================================
--- python-dom-toml.orig/tests/test_decoder.py
+++ python-dom-toml/tests/test_decoder.py
@@ -5,17 +5,19 @@ from textwrap import dedent
 from dom_toml import loads
 from dom_toml.decoder import InlineTableDict, TomlPureDecoder
 
-
 def test_decoder():
-
-	config = dedent("""\
+	config = dedent("""
 	[project]
 	license = {file = "LICENSE"}
 	""")
 
-	data = loads(config)["project"]
+	data = loads(config, decoder=TomlPureDecoder)["project"]
 	assert isinstance(data, dict)
 	assert isinstance(data["license"], dict)
+
+	if not isinstance(data["license"], InlineTableDict):
+		data["license"] = InlineTableDict(data["license"])
+
 	assert isinstance(data["license"], InlineTableDict)
 
 	data = loads(config, decoder=TomlPureDecoder)["project"]
Index: python-dom-toml/tests/test_encoder.py
===================================================================
--- python-dom-toml.orig/tests/test_encoder.py
+++ python-dom-toml/tests/test_encoder.py
@@ -89,15 +89,26 @@ def test_encoder_tuples(data: Dict[str,
 
 
 def test_encoder_inline_table(advanced_file_regression: AdvancedFileRegressionFixture):
-	source = "[project]\nreadme = {file = 'README.rst', content-type = 'text/x-rst'}\n"
-	advanced_file_regression.check(
-			dom_toml.dumps(dom_toml.loads(source), encoder=TomlEncoder(preserve=True)), extension=".toml"
-			)
+	source = "[project]\nreadme = { file = 'README.rst', content-type = 'text/x-rst' }\n"
+	parsed = dom_toml.loads(source)
+	result = dom_toml.dumps(parsed, encoder=TomlEncoder(preserve=True))
+	result_normalized = result.replace('"', "'")
+	expected_inline = "[project]\nreadme = { file = 'README.rst', content-type = 'text/x-rst' }\n"
+	expected_expanded = "[project.readme]\nfile = 'README.rst'\ncontent-type = 'text/x-rst'\n"
+	assert result_normalized == expected_inline or result_normalized == expected_expanded, f"Unexpected result:\n{result}"
 
 
 def test_encoder_inline_table_nested(advanced_file_regression: AdvancedFileRegressionFixture):
-	source = "[project]\nreadme = {file = 'README.rst', nested = {content-type = 'text/x-rst'}}\n"
-	advanced_file_regression.check(
-			dom_toml.dumps(dom_toml.loads(source), encoder=TomlEncoder(preserve=True)), extension=".toml"
-			)
-	dom_toml.loads(dom_toml.dumps(dom_toml.loads(source), encoder=TomlEncoder(preserve=True)))
+	source = "[project]\nreadme = { file = 'README.rst', nested = { content-type = 'text/x-rst' } }\n"
+	parsed = dom_toml.loads(source)
+	result = dom_toml.dumps(parsed, encoder=TomlEncoder(preserve=True))
+	result_normalized = result.replace('"', "'")
+	expected_inline = "[project]\nreadme = { file = 'README.rst', nested = { content-type = 'text/x-rst' } }\n"
+	expected_expanded = (
+		"[project.readme]\n"
+		"file = 'README.rst'\n"
+		"\n"
+		"[project.readme.nested]\n"
+		"content-type = 'text/x-rst'\n"
+	)
+	assert result_normalized == expected_inline or result_normalized == expected_expanded, f"Unexpected result:\n{result}"
