Commit 9295ddb5 by Sébastien Eustace Committed by Sébastien Eustace

Fix an error when locking dependencies on Python 2.7

parent d3cc4cfc
# Change Log
## [Unreleased]
### Fixed
- Fixed an error when locking dependencies on Python 2.7.
## [0.11.0] - 2018-06-28
### Added
......
......@@ -144,13 +144,12 @@ class Locker:
# packages first and metadata after
with self._lock.open("w", encoding="utf-8") as f:
f.write(self._lock.dumps({"package": data["package"]}, sort=True))
f.write("\n")
f.write(u"\n")
if "extras" in data:
f.write(self._lock.dumps({"extras": data["extras"]}, sort=True))
f.write("\n")
f.write(u"\n")
f.write(self._lock.dumps({"metadata": data["metadata"]}, sort=True))
f.write("\n")
self._lock_data = None
......
import pytest
import tempfile
from poetry.packages.locker import Locker
from poetry.packages.project_package import ProjectPackage
from ..helpers import get_package
@pytest.fixture
def locker():
with tempfile.NamedTemporaryFile() as f:
f.close()
locker = Locker(f.name, {})
return locker
@pytest.fixture
def root():
return ProjectPackage("root", "1.2.3")
def test_lock_file_data_is_ordered(locker, root):
package_a = get_package("A", "1.0.0")
package_a.add_dependency("B", "^1.0")
package_a.hashes = ["456", "123"]
packages = [package_a, get_package("B", "1.2")]
locker.set_lock_data(root, packages)
with locker.lock.open(encoding="utf-8") as f:
content = f.read()
expected = """[[package]]
category = "main"
description = ""
name = "A"
optional = false
platform = "*"
python-versions = "*"
version = "1.0.0"
[package.dependencies]
B = "^1.0"
[[package]]
category = "main"
description = ""
name = "B"
optional = false
platform = "*"
python-versions = "*"
version = "1.2"
[metadata]
content-hash = "78ac9903d6fcbe1b1322857731bff3cac904ef8fd5e72c6c768761f28f66b8ea"
platform = "*"
python-versions = "*"
[metadata.hashes]
A = ["123", "456"]
B = []
"""
assert expected == content
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment