diff options
author | Lars Wirzenius <liw@liw.fi> | 2021-02-18 08:34:40 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2021-02-18 08:34:40 +0000 |
commit | 62e56dd0b93f51705651b09286aad703cc2c6457 (patch) | |
tree | f5f0d08347064a7e753dd0725b427dbc4d3d0489 /subplot | |
parent | 2de0f1bd7d2d91f70b670d23a42049e2bf2f7e03 (diff) | |
parent | 9d8edeac3280dba38d94a50cc6ea685ca79e9566 (diff) | |
download | summain-rs-62e56dd0b93f51705651b09286aad703cc2c6457.tar.gz |
Merge branch 'filetypes' into 'main'
Filetypes
See merge request larswirzenius/summain!15
Diffstat (limited to 'subplot')
-rw-r--r-- | subplot/summain.py | 25 | ||||
-rw-r--r-- | subplot/summain.yaml | 9 |
2 files changed, 34 insertions, 0 deletions
diff --git a/subplot/summain.py b/subplot/summain.py index 4efc8c4..ca7c0f6 100644 --- a/subplot/summain.py +++ b/subplot/summain.py @@ -1,5 +1,7 @@ +import difflib import logging import os +import socket def install_summain(ctx): @@ -21,6 +23,19 @@ def create_symlink(ctx, linkname=None, target=None): os.symlink(target, linkname) +def create_socket(ctx, filename=None): + fd = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + fd.bind(filename) + + +def create_fifo(ctx, filename=None): + os.mkfifo(filename) + + +def set_mode(ctx, filename=None, mode=None): + os.chmod(filename, int(mode, 8)) + + def set_atime(ctx, filename=None, timestamp=None): st = os.lstat(filename) os.utime(filename, (int(timestamp), int(st.st_mtime)), follow_symlinks=False) @@ -38,7 +53,17 @@ def output_matches_file(ctx, filename=None): actual = runcmd_get_stdout(ctx) expected = get_file(filename).decode("UTF-8") + diff = "".join( + line.rstrip("\n") + "\n" + for line in difflib.unified_diff( + expected.splitlines(), + actual.splitlines(), + fromfile="expected", + tofile="actual", + ) + ) logging.debug("output_matches:") logging.debug(f" actual:\n{actual}") logging.debug(f" expect:\n{expected}") + logging.debug(f" diff:\n{diff}") assert_eq(actual, expected) diff --git a/subplot/summain.yaml b/subplot/summain.yaml index 2fd12a5..8e5333c 100644 --- a/subplot/summain.yaml +++ b/subplot/summain.yaml @@ -4,9 +4,18 @@ - given: directory {dirname} function: create_directory +- given: socket {filename} + function: create_socket + +- given: named pipe {filename} + function: create_fifo + - given: file {filename} function: create_file +- given: file {filename} has mode {mode} + function: set_mode + - given: symlink {linkname} pointing at {target} function: create_symlink |