Home | History | Annotate | Download | only in pyutils
      1 #!/usr/bin/python
      2 
      3 """
      4 Copyright 2014 Google Inc.
      5 
      6 Use of this source code is governed by a BSD-style license that can be
      7 found in the LICENSE file.
      8 
      9 Test url_utils.py
     10 """
     11 
     12 # System-level imports
     13 import os
     14 import shutil
     15 import tempfile
     16 import unittest
     17 import urllib
     18 
     19 # Imports from within Skia
     20 import url_utils
     21 
     22 
     23 class UrlUtilsTest(unittest.TestCase):
     24 
     25   def test_create_filepath_url(self):
     26     """Tests create_filepath_url(). """
     27     with self.assertRaises(Exception):
     28       url_utils.create_filepath_url('http://1.2.3.4/path')
     29     # Pass absolute filepath.
     30     self.assertEquals(
     31         url_utils.create_filepath_url(
     32             '%sdir%sfile' % (os.path.sep, os.path.sep)),
     33         'file:///dir/file')
     34     # Pass relative filepath.
     35     self.assertEquals(
     36         url_utils.create_filepath_url(os.path.join('dir', 'file')),
     37         'file://%s/dir/file' % urllib.pathname2url(os.getcwd()))
     38 
     39   def test_copy_contents(self):
     40     """Tests copy_contents(). """
     41     contents = 'these are the contents'
     42     tempdir_path = tempfile.mkdtemp()
     43     try:
     44       source_path = os.path.join(tempdir_path, 'source')
     45       source_url = url_utils.create_filepath_url(source_path)
     46       with open(source_path, 'w') as source_handle:
     47         source_handle.write(contents)
     48       dest_path = os.path.join(tempdir_path, 'new_subdir', 'dest')
     49       # Destination subdir does not exist, so copy_contents() should fail
     50       # if create_subdirs_if_needed is False.
     51       with self.assertRaises(Exception):
     52         url_utils.copy_contents(source_url=source_url,
     53                                 dest_path=dest_path,
     54                                 create_subdirs_if_needed=False)
     55       # If create_subdirs_if_needed is True, it should work.
     56       url_utils.copy_contents(source_url=source_url,
     57                               dest_path=dest_path,
     58                               create_subdirs_if_needed=True)
     59       self.assertEquals(open(dest_path).read(), contents)
     60     finally:
     61       shutil.rmtree(tempdir_path)
     62