summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Gomes <tiago.gomes@codethink.co.uk>2018-07-31 16:36:28 +0100
committerTiago Gomes <tiago.gomes@codethink.co.uk>2018-08-02 12:33:17 +0100
commit567e2a64f49c4ec69dcb671def3de14a41db3b37 (patch)
tree89b0acf355133d7b684c9fa97c71a6b692bf9d4c
parent0225ee147953cef0738b811ef5e9bf919e33c683 (diff)
downloadbuildstream-567e2a64f49c4ec69dcb671def3de14a41db3b37.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()