summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Gomes <tiago.gomes@codethink.co.uk>2018-07-31 16:36:28 +0100
committerTiago Gomes <tiago.avv@gmail.com>2018-08-02 11:24:43 +0000
commit731328ad933454c766d0708e14d7ed54ab0738c2 (patch)
tree3694be68bbf44cb6d5534eea807968fab374a9d8
parent385aa592c9c97e1a0a0a5035210d6c7358a158d4 (diff)
downloadbuildstream-731328ad933454c766d0708e14d7ed54ab0738c2.tar.gz
tests: add generate_file_types testing function
-rw-r--r--tests/testutils/filetypegenerator.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/testutils/filetypegenerator.py b/tests/testutils/filetypegenerator.py
new file mode 100644
index 000000000..2dadb7e80
--- /dev/null
+++ b/tests/testutils/filetypegenerator.py
@@ -0,0 +1,62 @@
+#
+# Copyright (C) 2018 Codethink Limited
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library. If not, see <http://www.gnu.org/licenses/>.
+#
+# Authors:
+# Tiago Gomes <tiago.gomes@codethink.co.uk>
+
+import os
+import socket
+
+
+# generate_file_types()
+#
+# Generator that creates a regular file directory, symbolic link, fifo
+# and socket at the specified path.
+#
+# Args:
+# path: (str) path where to create each different type of file
+#
+def generate_file_types(path):
+ def clean():
+ if os.path.exists(path):
+ if os.path.isdir(path):
+ os.rmdir(path)
+ else:
+ os.remove(path)
+
+ clean()
+
+ with open(path, 'w') as f:
+ pass
+ yield
+ clean()
+
+ os.makedirs(path)
+ yield
+ clean()
+
+ os.symlink("project.conf", path)
+ yield
+ clean()
+
+ os.mkfifo(path)
+ yield
+ clean()
+
+ s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+ s.bind(path)
+ yield
+ clean()