
This hopefully updates all module headers such that the file encoding is utf-8, and uses Unicode literals, etc.
39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
import os
|
|
from unittest import TestCase
|
|
|
|
import lockfile
|
|
from fixture import TempIO
|
|
|
|
from rattail import files
|
|
|
|
|
|
class TestLockingCopy(TestCase):
|
|
|
|
def setUp(self):
|
|
self.tmp = TempIO()
|
|
self.src = self.tmp.mkdir(u'src')
|
|
self.dst = self.tmp.mkdir(u'dst')
|
|
self.src_file = self.src.putfile(u'somefile', b'')
|
|
|
|
def test_normal_copy_succeeds(self):
|
|
files.locking_copy(self.src_file, self.dst)
|
|
dst_file = os.path.join(self.dst, u'somefile')
|
|
self.assertTrue(os.path.exists(dst_file))
|
|
self.assertTrue(os.path.isfile(dst_file))
|
|
self.assertFalse(os.path.exists(os.path.join(self.dst, u'somefile.lock')))
|
|
|
|
def test_copy_times_out_if_lock_already_exists(self):
|
|
dst_lock = self.dst.mkdir(u'somefile.lock')
|
|
self.assertRaises(lockfile.LockTimeout, files.locking_copy, self.src_file, self.dst, timeout=0.1)
|
|
|
|
def test_lock_timeout_may_be_specified_as_string(self):
|
|
dst_lock = self.dst.mkdir(u'somefile.lock')
|
|
# string "float"
|
|
self.assertRaises(lockfile.LockTimeout, files.locking_copy, self.src_file, self.dst, timeout=u'0.1')
|
|
# string "integer"
|
|
self.assertRaises(lockfile.LockTimeout, files.locking_copy, self.src_file, self.dst, timeout=u'1')
|