kanrisuru 0.8.15 → 0.8.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 522ae1903fe51ff350abc0fafa252d1b66f970710d4bed41748be03cc25ead3d
4
- data.tar.gz: 501c4b568aeed1bca4e22658291ebab44e9cb9ebb84c23f5154dc4c97e5daf08
3
+ metadata.gz: 6c2110c3bfef603ff4d09ade3a4fabf81b34e2f5ca51ff9f120d382963542f7f
4
+ data.tar.gz: 6ef4e848168e93b37a06e0d0cbfffd9138d979e125d7a151e77c594539aba85d
5
5
  SHA512:
6
- metadata.gz: 59fbae207747c7b7c93461a48f12cd959d8dcd2b2853619cb15624627534bca2a84fdf88c068285ef2cbb7a1ac48c74d592f784374847e3f89b35faa85de5366
7
- data.tar.gz: 8981e523f2373b7eb4740e1c6b1af2318cb45ba960a92e620f368d502a5359f68402fa23c2607f449e563c451b6b5d0efce9cba8ef45ffa4252b4158bd9a09a8
6
+ metadata.gz: 3444e7a640af911e1f0eb67181503e0b87677847adacd6c0bf3a45c13ce8c8287b2b17ad56ba36d4fe301fe3a19aaf5b17856d3f9bceb1175002ed199d1eb774
7
+ data.tar.gz: d5a76df5b4ffd4f7483c6953d5c36479755f30efb3e19c822f1df41e459e6213c555c64324f6412df2a9b1ac5a4f003d5e525110c9e6f8e92389d655666fd5d7
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## Kanrisuru 0.8.16 (October 14, 20201)
2
+ * Add functional test cases for `stream` and `path` modules
3
+ * Create `expect_command` helper for quick testing on raw command result
4
+
1
5
  ## Kanrisuru 0.8.15 (October 12, 20201)
2
6
  * Move functional specs to integration. Anything that performs an actual network request will be under the integrations test.
3
7
  * Create a `StubNetwork` to quickly monkey patch the `Kanrisuru::Remote::Host` to simulate a `Net::SSH` channel request. Will add additional functionality for different simulations later on.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kanrisuru
4
- VERSION = '0.8.15'
4
+ VERSION = '0.8.16'
5
5
  end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ StubNetwork.stub!
6
+
7
+ RSpec.describe Kanrisuru::Core::Path do
8
+ let(:host) do
9
+ Kanrisuru::Remote::Host.new(
10
+ host: 'localhost',
11
+ username: 'ubuntu',
12
+ keys: ['id_rsa']
13
+ )
14
+ end
15
+
16
+ it 'prepares ls command' do
17
+ expect_command(host.ls(path: '/etc'), 'ls -i -l /etc')
18
+ expect_command(host.ls(path: '/var/log', all: true, id: true), 'ls -i -l -a -n /var/log')
19
+ end
20
+
21
+ it 'prepares pwd command' do
22
+ expect_command(host.pwd, 'pwd')
23
+ end
24
+
25
+ it 'prepares whoami command' do
26
+ expect_command(host.whoami, 'whoami')
27
+ end
28
+
29
+ it 'prepares which command' do
30
+ expect_command(host.which('which'), 'which which')
31
+ expect_command(host.which('pwd', all: true), 'which -a pwd')
32
+ end
33
+
34
+ it 'prepares realpath command' do
35
+ expect_command(host.realpath('/etc/os-release'), 'realpath /etc/os-release')
36
+ expect_command(host.realpath('/etc/os-release', strip: true), 'realpath /etc/os-release -s')
37
+ end
38
+
39
+ it 'prepares readlink command' do
40
+ expect_command(host.readlink('/etc/os-release'), 'readlink /etc/os-release')
41
+ expect_command(host.readlink('/etc/os-release', canonicalize: true), 'readlink -f /etc/os-release')
42
+ expect_command(host.readlink('/etc/os-release', canonicalize_existing: true), 'readlink -e /etc/os-release')
43
+ expect_command(host.readlink('/etc/os-release', canonicalize_missing: true), 'readlink -m /etc/os-release')
44
+ end
45
+
46
+ end
@@ -14,14 +14,12 @@ RSpec.describe Kanrisuru::Core::Stat do
14
14
  end
15
15
 
16
16
  it 'prepares stat command' do
17
- result = host.stat('~/file1.txt')
18
- expect(result.command.raw_command).to eq(
17
+ expect_command(host.stat('~/file1.txt'),
19
18
  'stat -c %A,%b,%D,%F,%g,%G,%h,%i,%n,%s,%u,%U,%x,%y,%z ~/file1.txt'
20
19
  )
21
20
 
22
- result = host.stat('~/file2.txt', follow: true)
23
- expect(result.command.raw_command).to eq(
24
- 'stat -L -c %A,%b,%D,%F,%g,%G,%h,%i,%n,%s,%u,%U,%x,%y,%z ~/file1.txt'
21
+ expect_command(host.stat('~/file2.txt', follow: true),
22
+ 'stat -L -c %A,%b,%D,%F,%g,%G,%h,%i,%n,%s,%u,%U,%x,%y,%z ~/file2.txt'
25
23
  )
26
24
  end
27
25
 
@@ -0,0 +1,109 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ StubNetwork.stub!
6
+
7
+ RSpec.describe Kanrisuru::Core::Stream do
8
+ let(:host) do
9
+ Kanrisuru::Remote::Host.new(
10
+ host: 'localhost',
11
+ username: 'ubuntu',
12
+ keys: ['id_rsa']
13
+ )
14
+ end
15
+
16
+ it 'prepares head command' do
17
+ result = host.head('/var/log/syslog')
18
+ expect_command(result, 'head /var/log/syslog')
19
+
20
+ result = host.head('/var/log/syslog', bytes: 1024)
21
+ expect_command(result, 'head -c 1024 /var/log/syslog')
22
+
23
+ result = host.head('/var/log/syslog', lines: 50)
24
+ expect_command(result, 'head -n 50 /var/log/syslog')
25
+ end
26
+
27
+ it 'prepares tail command' do
28
+ result = host.tail('/var/log/syslog')
29
+ expect_command(result, 'tail /var/log/syslog' )
30
+
31
+ result = host.tail('/var/log/syslog', bytes: 1024)
32
+ expect_command(result, 'tail -c 1024 /var/log/syslog')
33
+
34
+ result = host.tail('/var/log/syslog', lines: 50)
35
+ expect_command(result, 'tail -n 50 /var/log/syslog' )
36
+ end
37
+
38
+ it 'prepares read_file_chunk command' do
39
+ result = host.read_file_chunk('/var/log/apache2/access.log', 10, 20)
40
+ expect_command(result, 'tail -n +10 /var/log/apache2/access.log | head -n 11')
41
+
42
+ result = host.read_file_chunk('/var/log/apache2/access.log', 0, 0)
43
+ expect_command(result, 'tail -n +0 /var/log/apache2/access.log | head -n 1')
44
+
45
+ expect {
46
+ host.read_file_chunk('file.log', 10, '20')
47
+ }.to raise_error(ArgumentError)
48
+
49
+ expect {
50
+ host.read_file_chunk('file.log', '10', 20)
51
+ }.to raise_error(ArgumentError)
52
+
53
+ expect {
54
+ host.read_file_chunk('file.log', 10, 9)
55
+ }.to raise_error(ArgumentError)
56
+
57
+ expect {
58
+ host.read_file_chunk('file.log', -1, 1)
59
+ }.to raise_error(ArgumentError)
60
+
61
+ expect {
62
+ host.read_file_chunk('file.log', 10, -2)
63
+ }.to raise_error(ArgumentError)
64
+ end
65
+
66
+ it 'prepares sed command' do
67
+ result = host.sed("~/file.txt", 'Cat', 'Dog')
68
+ expect_command(result, "sed 's/Cat/Dog/g' '~/file.txt'")
69
+
70
+ result = host.sed("~/file.txt", 'Cat', 'Doggz', in_place: true, new_file: '~/file2.txt', mode: 'write')
71
+ expect_command(result, "sed -i 's/Cat/Doggz/g' '~/file.txt' > ~/file2.txt")
72
+
73
+ result = host.sed("~/file.txt", 'Cat', 'Dogo', regexp_extended: true, new_file: '~/file2.txt', mode: 'append')
74
+ expect_command(result, "sed -r 's/Cat/Dogo/g' '~/file.txt' >> ~/file2.txt")
75
+ end
76
+
77
+ it 'prepares echo command' do
78
+ expect_command(host.echo('Hello world') , "echo 'Hello world'")
79
+ expect_command(host.echo("Hello\\n world", backslash: true), "echo -e 'Hello\\n world'")
80
+
81
+ expect_command(host.echo('Hello world', new_file: '~/file1.txt', mode: 'write'),
82
+ "echo 'Hello world' > ~/file1.txt")
83
+ expect_command(host.echo("Goodbye", new_file: '~/file1.txt', mode: 'append'),
84
+ "echo 'Goodbye' >> ~/file1.txt")
85
+ end
86
+
87
+ it 'prepares cat command' do
88
+ expect_command(host.cat('/etc/group'), 'cat /etc/group')
89
+ expect_command(host.cat('/etc/group', show_all: true), 'cat -A /etc/group')
90
+ expect_command(host.cat('/etc/group',
91
+ show_tabs: true,
92
+ number: true,
93
+ squeeze_blank: true,
94
+ show_nonprinting: true,
95
+ show_ends: true,
96
+ number_nonblank: true
97
+ ), 'cat -T -n -s -v -E -b /etc/group')
98
+
99
+ expect_command(host.cat(['~/file1.txt', '~/file2.txt', '~/file3.txt']),
100
+ 'cat ~/file1.txt ~/file2.txt ~/file3.txt')
101
+
102
+ expect_command(host.cat(['~/file1.txt', '~/file2.txt', '~/file3.txt'], mode: 'write', new_file: 'combined.txt'),
103
+ 'cat ~/file1.txt ~/file2.txt ~/file3.txt > combined.txt')
104
+
105
+ expect_command(host.cat(['~/file1.txt', '~/file2.txt', '~/file3.txt'], mode: 'append', new_file: 'combined.txt'),
106
+ 'cat ~/file1.txt ~/file2.txt ~/file3.txt >> combined.txt')
107
+ end
108
+
109
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ def expect_command(result, string)
4
+ expect(result.command.raw_command).to eq(
5
+ string
6
+ )
7
+ end
data/spec/spec_helper.rb CHANGED
@@ -4,8 +4,10 @@ require 'simplecov'
4
4
  SimpleCov.start
5
5
 
6
6
  require 'kanrisuru'
7
+
7
8
  require_relative 'helper/test_hosts'
8
9
  require_relative 'helper/stub_network'
10
+ require_relative 'helper/expect_helpers'
9
11
 
10
12
  Kanrisuru.logger.level = Logger::WARN
11
13
 
@@ -19,4 +21,4 @@ RSpec.configure do |config|
19
21
  config.expect_with :rspec do |c|
20
22
  c.syntax = :expect
21
23
  end
22
- end
24
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kanrisuru
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.15
4
+ version: 0.8.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Mammina
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-12 00:00:00.000000000 Z
11
+ date: 2021-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -173,8 +173,11 @@ files:
173
173
  - lib/kanrisuru/util/os_family.rb
174
174
  - lib/kanrisuru/util/signal.rb
175
175
  - lib/kanrisuru/version.rb
176
+ - spec/functional/core/path_spec.rb
176
177
  - spec/functional/core/stat_spec.rb
178
+ - spec/functional/core/stream_spec.rb
177
179
  - spec/functional/os_package_spec.rb
180
+ - spec/helper/expect_helpers.rb
178
181
  - spec/helper/stub_network.rb
179
182
  - spec/helper/test_hosts.rb
180
183
  - spec/hosts.json