Merge branch '21535-multi-wf-delete'
[arvados.git] / services / fuse / tests / test_command_args.py
index 9f4aa53bdb2e52842ea4dca3bc7a21d2c91c67f9..a6a387789d65e25f4a4295485af1abd6bcc159ae 100644 (file)
@@ -2,9 +2,6 @@
 #
 # SPDX-License-Identifier: AGPL-3.0
 
-from __future__ import absolute_import
-from __future__ import print_function
-from six import assertRegex
 import arvados
 import arvados_fuse
 import arvados_fuse.command
@@ -14,14 +11,16 @@ import io
 import json
 import llfuse
 import logging
-import mock
 import os
-from . import run_test_server
 import sys
 import tempfile
 import unittest
 import resource
 
+from unittest import mock
+
+from . import run_test_server
+
 def noexit(func):
     """If argparse or arvados_fuse tries to exit, fail the test instead"""
     class SystemExitCaught(Exception):
@@ -84,13 +83,13 @@ class MountArgsTest(unittest.TestCase):
 
         e = self.check_ent_type(arvados_fuse.StringFile, 'README')
         readme = e.readfrom(0, -1).decode()
-        assertRegex(self, readme, r'active-user@arvados\.local')
-        assertRegex(self, readme, r'\n$')
+        self.assertRegex(readme, r'active-user@arvados\.local')
+        self.assertRegex(readme, r'\n$')
 
         e = self.check_ent_type(arvados_fuse.StringFile, 'by_id', 'README')
         txt = e.readfrom(0, -1).decode()
-        assertRegex(self, txt, r'portable data hash')
-        assertRegex(self, txt, r'\n$')
+        self.assertRegex(txt, r'portable data hash')
+        self.assertRegex(txt, r'\n$')
 
     @noexit
     def test_by_id(self):
@@ -199,7 +198,7 @@ class MountArgsTest(unittest.TestCase):
 
         with self.assertRaises(SystemExit):
             args = arvados_fuse.command.ArgumentParser().parse_args(['--version'])
-        assertRegex(self, sys.stdout.getvalue(), "[0-9]+\.[0-9]+\.[0-9]+")
+        self.assertRegex(sys.stdout.getvalue(), "[0-9]+\.[0-9]+\.[0-9]+")
         sys.stderr.close()
         sys.stderr = origerr
         sys.stdout = origout
@@ -265,18 +264,36 @@ class MountArgsTest(unittest.TestCase):
     @noexit
     @mock.patch('resource.setrlimit')
     @mock.patch('resource.getrlimit')
-    def test_file_cache(self, getrlimit, setrlimit):
+    def test_default_file_cache(self, getrlimit, setrlimit):
         args = arvados_fuse.command.ArgumentParser().parse_args([
-            '--foreground', '--file-cache=256000000000', self.mntdir])
+            '--foreground', self.mntdir])
         self.assertEqual(args.mode, None)
-
         getrlimit.return_value = (1024, 1048576)
+        self.mnt = arvados_fuse.command.Mount(args)
+        setrlimit.assert_called_with(resource.RLIMIT_NOFILE, (10240, 1048576))
 
+    @noexit
+    @mock.patch('resource.setrlimit')
+    @mock.patch('resource.getrlimit')
+    def test_small_file_cache(self, getrlimit, setrlimit):
+        args = arvados_fuse.command.ArgumentParser().parse_args([
+            '--foreground', '--file-cache=256000000', self.mntdir])
+        self.assertEqual(args.mode, None)
+        getrlimit.return_value = (1024, 1048576)
         self.mnt = arvados_fuse.command.Mount(args)
+        setrlimit.assert_not_called()
 
+    @noexit
+    @mock.patch('resource.setrlimit')
+    @mock.patch('resource.getrlimit')
+    def test_large_file_cache(self, getrlimit, setrlimit):
+        args = arvados_fuse.command.ArgumentParser().parse_args([
+            '--foreground', '--file-cache=256000000000', self.mntdir])
+        self.assertEqual(args.mode, None)
+        getrlimit.return_value = (1024, 1048576)
+        self.mnt = arvados_fuse.command.Mount(args)
         setrlimit.assert_called_with(resource.RLIMIT_NOFILE, (30517, 1048576))
 
-
     @noexit
     @mock.patch('resource.setrlimit')
     @mock.patch('resource.getrlimit')
@@ -284,11 +301,8 @@ class MountArgsTest(unittest.TestCase):
         args = arvados_fuse.command.ArgumentParser().parse_args([
             '--foreground', '--file-cache=256000000000', self.mntdir])
         self.assertEqual(args.mode, None)
-
         getrlimit.return_value = (1024, 2048)
-
         self.mnt = arvados_fuse.command.Mount(args)
-
         setrlimit.assert_called_with(resource.RLIMIT_NOFILE, (2048, 2048))
 
 class MountErrorTest(unittest.TestCase):