1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-07-15 01:24:29 +02:00

add rsync-s tests

This commit is contained in:
Kelly Brazil
2022-02-04 14:39:45 -08:00
parent a76d46f9ec
commit fda0050d86
13 changed files with 191 additions and 0 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
[{"type":"file","filename":"some/dir/new-file.txt","metadata":">f+++++++++","update_type":"file received","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null,"acl_different":null,"extended_attribute_different":null},{"type":"file","filename":"some/dir/existing-file-with-changed-owner-and-group.txt","metadata":".f....og..x","update_type":"not updated","file_type":"file","checksum_or_value_different":false,"size_different":false,"modification_time_different":false,"permissions_different":false,"owner_different":true,"group_different":true,"acl_different":false,"extended_attribute_different":true},{"type":"file","filename":"some/dir/existing-file-with-changed-unnamed-attribute.txt","metadata":".f........x","update_type":"not updated","file_type":"file","checksum_or_value_different":false,"size_different":false,"modification_time_different":false,"permissions_different":false,"owner_different":false,"group_different":false,"acl_different":false,"extended_attribute_different":true},{"type":"file","filename":"some/dir/existing-file-with-changed-permissions.txt","metadata":">f...p....x","update_type":"file received","file_type":"file","checksum_or_value_different":false,"size_different":false,"modification_time_different":false,"permissions_different":true,"owner_different":false,"group_different":false,"acl_different":false,"extended_attribute_different":true},{"type":"file","filename":"some/dir/existing-file-with-changed-time-and-group.txt","metadata":">f..t..g..x","update_type":"file received","file_type":"file","checksum_or_value_different":false,"size_different":false,"modification_time_different":true,"permissions_different":false,"owner_different":false,"group_different":true,"acl_different":false,"extended_attribute_different":true},{"type":"file","filename":"some/dir/existing-file-with-changed-size.txt","metadata":">f.s......x","update_type":"file received","file_type":"file","checksum_or_value_different":false,"size_different":true,"modification_time_different":false,"permissions_different":false,"owner_different":false,"group_different":false,"acl_different":false,"extended_attribute_different":true},{"type":"file","filename":"some/dir/existing-file-with-changed-size-and-time-stamp.txt ","metadata":">f.st.....x","update_type":"file received","file_type":"file","checksum_or_value_different":false,"size_different":true,"modification_time_different":true,"permissions_different":false,"owner_different":false,"group_different":false,"acl_different":false,"extended_attribute_different":true},{"type":"file","filename":"some/dir/new-directory/","metadata":"cd+++++++++","update_type":"local change or creation","file_type":"directory","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null,"acl_different":null,"extended_attribute_different":null},{"type":"file","filename":"some/dir/existing-directory-with-changed-owner-and-group/","metadata":".d....og...","update_type":"not updated","file_type":"directory","checksum_or_value_different":false,"size_different":false,"modification_time_different":false,"permissions_different":false,"owner_different":true,"group_different":true,"acl_different":false,"extended_attribute_different":false},{"type":"file","filename":"some/dir/existing-directory-with-different-time-stamp/","metadata":".d..t......","update_type":"not updated","file_type":"directory","checksum_or_value_different":false,"size_different":false,"modification_time_different":true,"permissions_different":false,"owner_different":false,"group_different":false,"acl_different":false,"extended_attribute_different":false}]

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
[{"type":"file","filename":"./","metadata":".d ","update_type":"not updated","file_type":"directory","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"a.txt","metadata":".f ","update_type":"not updated","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"b.txt","metadata":".f ","update_type":"not updated","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"c.txt","metadata":".f ","update_type":"not updated","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"d.txt","metadata":".f ","update_type":"not updated","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"folder/","metadata":".d ","update_type":"not updated","file_type":"directory","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"folder/a.txt","metadata":".f ","update_type":"not updated","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"folder/b.txt","metadata":".f ","update_type":"not updated","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"folder/c.txt","metadata":".f ","update_type":"not updated","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"folder/d.txt","metadata":".f ","update_type":"not updated","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"summary","sent":284,"received":80,"bytes_sec":728.0,"total_size":320,"speedup":0.88}]

View File

@ -0,0 +1 @@
[{"type":"file","filename":"./","metadata":".d..t....","update_type":"not updated","file_type":"directory","checksum_or_value_different":false,"size_different":false,"modification_time_different":true,"permissions_different":false,"owner_different":false,"group_different":false},{"type":"file","filename":"a.txt","metadata":">f+++++++","update_type":"file received","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"b.txt","metadata":">f+++++++","update_type":"file received","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"c.txt","metadata":">f+++++++","update_type":"file received","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"d.txt","metadata":">f+++++++","update_type":"file received","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"folder/","metadata":"cd+++++++","update_type":"local change or creation","file_type":"directory","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"folder/a.txt","metadata":">f+++++++","update_type":"file received","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"folder/b.txt","metadata":">f+++++++","update_type":"file received","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"folder/c.txt","metadata":">f+++++++","update_type":"file received","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"file","filename":"folder/d.txt","metadata":">f+++++++","update_type":"file received","file_type":"file","checksum_or_value_different":null,"size_different":null,"modification_time_different":null,"permissions_different":null,"owner_different":null,"group_different":null},{"type":"summary","sent":924,"received":208,"bytes_sec":2264.0,"total_size":320,"speedup":0.28}]

179
tests/test_rsync_s.py Normal file
View File

@ -0,0 +1,179 @@
import os
import sys
import time
import json
import unittest
import jc.parsers.rsync_s
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
# Set the timezone on POSIX systems. Need to manually set for Windows tests
if not sys.platform.startswith('win32'):
os.environ['TZ'] = 'America/Los_Angeles'
time.tzset()
# To create streaming output use:
# $ cat rsync.out | jc --rsync-s | jello -c > rsync-streaming.json
class MyTests(unittest.TestCase):
def setUp(self):
pass
# input
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i.out'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_i = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/rsync-i.out'), 'r', encoding='utf-8') as f:
self.generic_rsync_i = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv.out'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_ivvv = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv.out'), 'r', encoding='utf-8') as f:
self.osx_10_14_6_rsync_ivvv = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-nochange.out'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_ivvv_nochange = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-nochange.out'), 'r', encoding='utf-8') as f:
self.osx_10_14_6_rsync_ivvv_nochange = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-logfile.out'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_i_logfile = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-v-logfile.out'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_i_v_logfile = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vv-logfile.out'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_i_vv_logfile = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile.out'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_i_vvv_logfile = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-nochange.out'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_i_vvv_logfile_nochange = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-logfile-nochange.out'), 'r', encoding='utf-8') as f:
self.osx_10_14_6_rsync_i_vvv_logfile_nochange = f.read()
# output
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-streaming.json'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_i_streaming_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/rsync-i-streaming.json'), 'r', encoding='utf-8') as f:
self.generic_rsync_i_streaming_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-streaming.json'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_ivvv_streaming_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-streaming.json'), 'r', encoding='utf-8') as f:
self.osx_10_14_6_rsync_ivvv_streaming_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-ivvv-nochange-streaming.json'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_ivvv_nochange_streaming_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-nochange-streaming.json'), 'r', encoding='utf-8') as f:
self.osx_10_14_6_rsync_ivvv_nochange_streaming_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-logfile-streaming.json'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_i_logfile_streaming_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-v-logfile-streaming.json'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_i_v_logfile_streaming_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vv-logfile-streaming.json'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_i_vv_logfile_streaming_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-streaming.json'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_i_vvv_logfile_streaming_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/rsync-i-vvv-logfile-nochange-streaming.json'), 'r', encoding='utf-8') as f:
self.centos_7_7_rsync_i_vvv_logfile_nochange_streaming_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/rsync-i-vvv-logfile-nochange-streaming.json'), 'r', encoding='utf-8') as f:
self.osx_10_14_6_rsync_i_vvv_logfile_nochange_streaming_json = json.loads(f.read())
def test_rsync_s_nodata(self):
"""
Test 'rsync' with no data
"""
self.assertEqual(list(jc.parsers.rsync_s.parse([], quiet=True)), [])
def test_rsync_s_i_centos_7_7(self):
"""
Test 'rsync -i' on Centos 7.7
"""
self.assertEqual(list(jc.parsers.rsync_s.parse(self.centos_7_7_rsync_i.splitlines(), quiet=True)), self.centos_7_7_rsync_i_streaming_json)
def test_rsync_s_i_generic(self):
"""
Test 'rsync -i'
"""
self.assertEqual(list(jc.parsers.rsync_s.parse(self.generic_rsync_i.splitlines(), quiet=True)), self.generic_rsync_i_streaming_json)
def test_rsync_s_ivvv_centos_7_7(self):
"""
Test 'rsync -ivvv' on Centos 7.7
"""
self.assertEqual(list(jc.parsers.rsync_s.parse(self.centos_7_7_rsync_ivvv.splitlines(), quiet=True)), self.centos_7_7_rsync_ivvv_streaming_json)
def test_rsync_s_ivvv_osx_10_14_6(self):
"""
Test 'rsync -ivvv' on OSX 10.14.6
"""
self.assertEqual(list(jc.parsers.rsync_s.parse(self.osx_10_14_6_rsync_ivvv.splitlines(), quiet=True)), self.osx_10_14_6_rsync_ivvv_streaming_json)
def test_rsync_s_ivvv_nochange_centos_7_7(self):
"""
Test 'rsync -ivvv' on Centos 7.7 with no file changes
"""
self.assertEqual(list(jc.parsers.rsync_s.parse(self.centos_7_7_rsync_ivvv_nochange.splitlines(), quiet=True)), self.centos_7_7_rsync_ivvv_nochange_streaming_json)
def test_rsync_s_ivvv_nochange_osx_10_14_6(self):
"""
Test 'rsync -ivvv' on OSX 10.14.6 with no file changes
"""
self.assertEqual(list(jc.parsers.rsync_s.parse(self.osx_10_14_6_rsync_ivvv_nochange.splitlines(), quiet=True)), self.osx_10_14_6_rsync_ivvv_nochange_streaming_json)
def test_rsync_s_i_logfile_centos_7_7(self):
"""
Test 'rsync -i --logfile=xxx' on Centos 7.7
"""
self.assertEqual(list(jc.parsers.rsync_s.parse(self.centos_7_7_rsync_i_logfile.splitlines(), quiet=True)), self.centos_7_7_rsync_i_logfile_streaming_json)
def test_rsync_s_i_v_logfile_centos_7_7(self):
"""
Test 'rsync -iv --logfile=xxx' on Centos 7.7
"""
self.assertEqual(list(jc.parsers.rsync_s.parse(self.centos_7_7_rsync_i_v_logfile.splitlines(), quiet=True)), self.centos_7_7_rsync_i_v_logfile_streaming_json)
def test_rsync_s_i_vv_logfile_centos_7_7(self):
"""
Test 'rsync -ivv --logfile=xxx' on Centos 7.7
"""
self.assertEqual(list(jc.parsers.rsync_s.parse(self.centos_7_7_rsync_i_vv_logfile.splitlines(), quiet=True)), self.centos_7_7_rsync_i_vv_logfile_streaming_json)
def test_rsync_s_i_vvv_logfile_centos_7_7(self):
"""
Test 'rsync -ivvv --logfile=xxx' on Centos 7.7
"""
self.assertEqual(list(jc.parsers.rsync_s.parse(self.centos_7_7_rsync_i_vvv_logfile.splitlines(), quiet=True)), self.centos_7_7_rsync_i_vvv_logfile_streaming_json)
def test_rsync_s_i_vvv_logfile_nochange_centos_7_7(self):
"""
Test 'rsync -ivvv --logfile=xxx' on Centos 7.7 with no file changes
"""
self.assertEqual(list(jc.parsers.rsync_s.parse(self.centos_7_7_rsync_i_vvv_logfile_nochange.splitlines(), quiet=True)), self.centos_7_7_rsync_i_vvv_logfile_nochange_streaming_json)
def test_rsync_s_i_vvv_logfile_nochange_osx_10_14_6(self):
"""
Test 'rsync -ivvv --logfile=xxx' on OSX 10.14.6 with no file changes
"""
self.assertEqual(list(jc.parsers.rsync_s.parse(self.osx_10_14_6_rsync_i_vvv_logfile_nochange.splitlines(), quiet=True)), self.osx_10_14_6_rsync_i_vvv_logfile_nochange_streaming_json)
if __name__ == '__main__':
unittest.main()