mirror of
https://github.com/getpelican/pelican.git
synced 2026-07-13 02:34:33 +02:00
Support copying files to a directory
Since commit dbe0b1125f the `copy()` function no longer supports copying
files to a directory. The change in behaviour has lead to at least one
regression[1]. This restore the previous behaviour.
[1] https://github.com/getpelican/pelican/issues/3442
This commit is contained in:
parent
3c69dc68d2
commit
6d0a7c8e70
2 changed files with 15 additions and 0 deletions
|
|
@ -868,6 +868,18 @@ class TestCopy(unittest.TestCase):
|
|||
self._exist_dir("b0", "b1", "b2", "b3", "b")
|
||||
self._exist_file("b0", "b1", "b2", "b3", "b", "a.txt")
|
||||
|
||||
def test_copy_file_to_existing_dir(self):
|
||||
self._create_dir("a")
|
||||
self._create_file("a", "a.txt")
|
||||
self._create_dir("b0", "b1")
|
||||
utils.copy(
|
||||
os.path.join(self.root_dir, "a", "a.txt"),
|
||||
os.path.join(self.root_dir, "b0", "b1"),
|
||||
)
|
||||
self._exist_dir("b0")
|
||||
self._exist_dir("b0", "b1")
|
||||
self._exist_file("b0", "b1", "a.txt")
|
||||
|
||||
|
||||
class TestDateFormatter(unittest.TestCase):
|
||||
"""Tests that the output of DateFormatter jinja filter is same as
|
||||
|
|
|
|||
|
|
@ -366,6 +366,9 @@ def copy(source: str, destination: str, ignores: Iterable[str] | None = None) ->
|
|||
|
||||
def copy_file(source: str, destination: str) -> None:
|
||||
"""Copy a file"""
|
||||
if os.path.isdir(destination):
|
||||
destination = os.path.join(destination, os.path.basename(source))
|
||||
|
||||
try:
|
||||
shutil.copyfile(source, destination)
|
||||
except OSError as e:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue