Example #1
0
 def test_dont_use_names_taken(self):
     self.assertEqual(name_uniquely('foo.py'), 'foo.py')
     self.assertEqual(
         name_uniquely('foo.py', names_taken=['foo.py']),
         'foo-1.py')
     self.assertEqual(
         name_uniquely('foo.py', names_taken=['foo.py', 'foo-1.py']),
         'foo-2.py')
Example #2
0
    def test_dont_used_proposed_names_taken(self):
        self.assertEqual(name_uniquely("foo.py", proposed_name="bar.py"), "bar.py")
        self.assertEqual(name_uniquely("foo.py", names_taken=["bar.py"], proposed_name="bar.py"), "bar-1.py")
        self.assertEqual(
            name_uniquely("foo.py", names_taken=["bar.py", "bar-1.py"], proposed_name="bar.py"), "bar-2.py"
        )

        # doesn't matter if path is taken
        self.assertEqual(name_uniquely("foo.py", names_taken=["foo.py"], proposed_name="bar.py"), "bar.py")
Example #3
0
 def test_unhide(self):
     self.assertEqual(
         name_uniquely('.emacs', unhide=True), 'emacs')
     self.assertEqual(
         name_uniquely('._foo', unhide=True), 'foo')
     self.assertEqual(
         name_uniquely('_.bar', unhide=True), '1.bar')
     self.assertEqual(
         name_uniquely('_', unhide=True), '1')
Example #4
0
 def test_auto_names_with_no_extension(self):
     self.assertEqual(
         name_uniquely(
             'foo', names_taken=['foo']),
         'foo-1')
     self.assertEqual(
         name_uniquely(
             '', names_taken=['_']),
         '_-1')
Example #5
0
    def test_initial_dot_isnt_extension(self):
        self.assertEqual(
            name_uniquely(
                '.emacs', names_taken=['.emacs']),
            '.emacs-1')  # not '-1.emacs'

        self.assertEqual(
            name_uniquely(
                '.mrjob.conf', names_taken=['.mrjob.conf']),
            '.mrjob-1.conf')  # not '-1.mrjob.conf'
Example #6
0
 def test_unhide_affects_proposed_name(self):
     # these options aren't used together in practice, but of course
     # the proposed name is the one we care about if it's given
     self.assertEqual(
         name_uniquely(
             'foo.py', proposed_name='.hidden.foo.py', unhide=True),
         'hidden.foo.py')
Example #7
0
    def test_dont_used_proposed_names_taken(self):
        self.assertEqual(
            name_uniquely('foo.py', proposed_name='bar.py'),
            'bar.py')
        self.assertEqual(
            name_uniquely('foo.py', names_taken=['bar.py'],
                          proposed_name='bar.py'),
            'bar-1.py')
        self.assertEqual(
            name_uniquely('foo.py', names_taken=['bar.py', 'bar-1.py'],
                          proposed_name='bar.py'),
            'bar-2.py')

        # doesn't matter if path is taken
        self.assertEqual(
            name_uniquely(
                'foo.py', names_taken=['foo.py'], proposed_name='bar.py'),
            'bar.py')
Example #8
0
    def _dir_archive_path(self, dir_path):
        """Assign a path for the archive of *dir_path* but don't
        actually create anything."""
        if dir_path not in self._dir_to_archive_path:
            # we can check local paths now
            if not (is_uri(dir_path) or os.path.isdir(dir_path)):
                raise OSError('%s is not a directory!' % dir_path)

            name = name_uniquely(
                dir_path, names_taken=self._dir_archive_names_taken)
            self._dir_archive_names_taken.add(name)

            self._dir_to_archive_path[dir_path] = os.path.join(
                self._get_local_tmp_dir(), 'archives', name + '.tar.gz')

        return self._dir_to_archive_path[dir_path]
Example #9
0
 def test_strip_trailing_slash(self):
     self.assertEqual(
         name_uniquely('s3://bucket/archive-dir/'), 'archive-dir')
Example #10
0
 def test_unhide(self):
     self.assertEqual(name_uniquely('.emacs', unhide=True), 'emacs')
     self.assertEqual(name_uniquely('._foo', unhide=True), 'foo')
     self.assertEqual(name_uniquely('_.bar', unhide=True), '1.bar')
     self.assertEqual(name_uniquely('_', unhide=True), '1')
Example #11
0
 def test_auto_names_preserve_full_extension(self):
     self.assertEqual(
         name_uniquely(
             'foo.tar.gz', names_taken=['foo.tar.gz']),
         'foo-1.tar.gz')
Example #12
0
 def test_no_empty_names(self):
     self.assertEqual(name_uniquely(''), '_')
Example #13
0
 def test_use_basename_by_default(self):
     self.assertEqual(name_uniquely('foo/bar.py'), 'bar.py')
     self.assertEqual(name_uniquely('foo/bar/'), '_')
Example #14
0
 def test_strip_trailing_os_sep(self):
     self.assertEqual(name_uniquely(os.path.join('foo', 'bar', '')), 'bar')
Example #15
0
 def test_auto_names_with_no_extension(self):
     self.assertEqual(name_uniquely("foo", names_taken=["foo"]), "foo-1")
     self.assertEqual(name_uniquely("", names_taken=["_"]), "_-1")
Example #16
0
 def test_empty_proposed_name_same_as_none(self):
     self.assertEqual(name_uniquely('foo.py', proposed_name=None), 'foo.py')
     self.assertEqual(name_uniquely('foo.py', proposed_name=''), 'foo.py')
Example #17
0
 def test_use_basename_by_default(self):
     self.assertEqual(name_uniquely("foo/bar.py"), "bar.py")
     self.assertEqual(name_uniquely("foo/bar/"), "_")
Example #18
0
 def test_no_empty_names(self):
     self.assertEqual(name_uniquely(""), "_")
Example #19
0
 def test_use_basename_by_default(self):
     self.assertEqual(name_uniquely('foo/bar.py'), 'bar.py')
     self.assertEqual(name_uniquely('foo/bar/'), '_')
Example #20
0
 def test_auto_names_with_no_extension(self):
     self.assertEqual(name_uniquely('foo', names_taken=['foo']), 'foo-1')
     self.assertEqual(name_uniquely('', names_taken=['_']), '_-1')
Example #21
0
 def test_auto_names_preserve_full_extension(self):
     self.assertEqual(
         name_uniquely('foo.tar.gz', names_taken=['foo.tar.gz']),
         'foo-1.tar.gz')
Example #22
0
 def test_empty_proposed_name_same_as_none(self):
     self.assertEqual(name_uniquely("foo.py", proposed_name=None), "foo.py")
     self.assertEqual(name_uniquely("foo.py", proposed_name=""), "foo.py")
Example #23
0
 def test_strip_trailing_os_sep(self):
     self.assertEqual(
         name_uniquely(os.path.join('foo', 'bar', '')), 'bar')
Example #24
0
 def test_dont_use_names_taken(self):
     self.assertEqual(name_uniquely("foo.py"), "foo.py")
     self.assertEqual(name_uniquely("foo.py", names_taken=["foo.py"]), "foo-1.py")
     self.assertEqual(name_uniquely("foo.py", names_taken=["foo.py", "foo-1.py"]), "foo-2.py")
Example #25
0
 def test_no_empty_names(self):
     self.assertEqual(name_uniquely(''), '_')
Example #26
0
 def test_auto_names_preserve_full_extension(self):
     self.assertEqual(name_uniquely("foo.tar.gz", names_taken=["foo.tar.gz"]), "foo-1.tar.gz")
Example #27
0
 def test_empty_proposed_name_same_as_none(self):
     self.assertEqual(name_uniquely('foo.py', proposed_name=None), 'foo.py')
     self.assertEqual(name_uniquely('foo.py', proposed_name=''), 'foo.py')
Example #28
0
    def test_initial_dot_isnt_extension(self):
        self.assertEqual(name_uniquely(".emacs", names_taken=[".emacs"]), ".emacs-1")  # not '-1.emacs'

        self.assertEqual(
            name_uniquely(".mrjob.conf", names_taken=[".mrjob.conf"]), ".mrjob-1.conf"
        )  # not '-1.mrjob.conf'
Example #29
0
 def test_strip_trailing_slash(self):
     self.assertEqual(name_uniquely('s3://bucket/archive-dir/'),
                      'archive-dir')