sms-logparser 0.0.3 → 0.0.4

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
  SHA1:
3
- metadata.gz: bbfc8b0c75a4548ae8c9f15f2a79aeeb54066e9e
4
- data.tar.gz: 7ab7890fcb50d47710d476e1de9078b8ebac901e
3
+ metadata.gz: 51e05056b98cf58379c37b19df329c948e2b8656
4
+ data.tar.gz: bc696cef467afb68d9ee9b18e281ea8aa6b497b5
5
5
  SHA512:
6
- metadata.gz: 4f17dbe07a0804b3a47a09855c8a3c9873dd8e0ff1453ff688752e3c67d77c407ece48a069ab192f9e5abb42ad59e7c566c8eedeab1a7eca8914abe30885371f
7
- data.tar.gz: c97f560d1f4ade101f0277b9f7d660f7218b933b00308274483f4610dde49692df6c2c7ac4735634ffc2cd9958c98cb22c597d6b4bb28824a9120a8e38310e87
6
+ metadata.gz: 86d201529f5ac57d50082fb992d815e1969ae2a8dac652c11a017b27b0f8410a107b694829d55b9d5a3118d6ee5dac82797ee9d64132d87bc7067006f51aa0ae
7
+ data.tar.gz: 808350b006292eae603d3a12a2274ff080640c65a65052e9b22f9797ad97ce222b548e6d0f6558f12dc707485ac9f148e6ee5be627b75290ede18ef67b6ee3b9
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in sms-logparser.gemspec
4
- gemspec
4
+ gemspec
data/Rakefile CHANGED
@@ -1 +1,10 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new(:test) do |test|
5
+ test.libs << 'spec'
6
+ test.test_files = FileList['spec/*_spec.rb']
7
+ end
8
+
9
+ desc "Run Tests"
10
+ task :default => :test
@@ -23,6 +23,7 @@ module SmsLogparser
23
23
  option :api_base_path, :default => 'http://dev.simplex.tv/creator/rest'
24
24
  option :simulate, :type => :boolean, :default => false
25
25
  def parse
26
+ start_time = Time.now
26
27
  count = 0
27
28
  last_id = get_last_parse_id
28
29
  begin
@@ -63,7 +64,9 @@ module SmsLogparser
63
64
  last_id = result['ID']
64
65
  end
65
66
  write_parse_result(last_id, count) unless options[:simulate]
66
- puts "Number of valid messages found: #{count}"
67
+ puts "Started: #{start_time.strftime('%d.%d.%Y %T')}"
68
+ puts "Runtime: #{(Time.now - start_time).round(2)}s"
69
+ puts "Matches: #{count}"
67
70
  end
68
71
 
69
72
  desc "last_runs", "List the last paser runs"
@@ -1,3 +1,3 @@
1
1
  module SmsLogparser
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+
3
+ describe SmsLogparser do
4
+ before do
5
+ TestHelper.create_test_db
6
+ TestHelper.create_sylog_db_table
7
+ end
8
+
9
+ after do
10
+ TestHelper.drop_test_db
11
+ end
12
+
13
+ it "can create the parser_runs database table" do
14
+ out, err = capture_io do
15
+ TestHelper.sms_logparser.create_parser_table
16
+ end
17
+ out.must_match /OK/
18
+ end
19
+
20
+ it "can parse a log database and find matches" do
21
+ TestHelper.seed_db(10)
22
+ parser = TestHelper.sms_logparser
23
+ parser.options[:api_base_path] = 'http://devnull-as-a-service.com/dev/null/'
24
+ out, err = capture_io do
25
+ TestHelper.sms_logparser.create_parser_table
26
+ parser.parse
27
+ end
28
+ out.must_match /.*Matches: 10$/
29
+ end
30
+
31
+ it "skips over already parsed logs" do
32
+ TestHelper.seed_db(1)
33
+ parser = TestHelper.sms_logparser
34
+ parser.options[:api_base_path] = 'http://devnull-as-a-service.com/dev/null/'
35
+ out, err = capture_io do
36
+ TestHelper.sms_logparser.create_parser_table
37
+ parser.parse
38
+ parser.parse
39
+ end
40
+ out.must_match /.*Matches: 0$/
41
+ end
42
+
43
+ it "list parser runs" do
44
+ TestHelper.seed_db(1)
45
+ parser = TestHelper.sms_logparser
46
+ parser.options[:api_base_path] = 'http://devnull-as-a-service.com/dev/null/'
47
+ out, err = capture_io do
48
+ TestHelper.sms_logparser.create_parser_table
49
+ parser.parse
50
+ parser.last_runs
51
+ end
52
+ assert_equal(err, "")
53
+ end
54
+ end
@@ -0,0 +1,71 @@
1
+ require 'minitest/spec'
2
+ require 'minitest/autorun'
3
+ require 'minitest/pride'
4
+
5
+ require 'sms-logparser'
6
+
7
+ module TestHelper
8
+
9
+ @@mysql_db = 'syslog_test'
10
+ @@mysql_user = 'root'
11
+ @@sql_connection = nil
12
+
13
+ def self.sms_logparser(options = {:mysql_db => @@mysql_db, :mysql_user => @@mysql_user})
14
+ cli = SmsLogparser::Cli.new
15
+ cli.options = options
16
+ cli
17
+ end
18
+
19
+ def self.client
20
+ @@sql_connection ||= Mysql2::Client.new(:host => 'localhost', :username => @@mysql_user)
21
+ end
22
+
23
+ def self.create_test_db
24
+ self.drop_test_db
25
+ self.client.query("CREATE DATABASE #{@@mysql_db}")
26
+ end
27
+
28
+ def self.drop_test_db
29
+ self.client.query("DROP DATABASE IF EXISTS #{@@mysql_db}")
30
+ end
31
+
32
+ def self.create_sylog_db_table
33
+ self.client.query(
34
+ "CREATE TABLE IF NOT EXISTS\
35
+ #{@@mysql_db}.SystemEvents(\
36
+ ID INT PRIMARY KEY AUTO_INCREMENT,\
37
+ FromHost varchar(128) DEFAULT '',\
38
+ Message varchar(256) DEFAULT ''
39
+ )"
40
+ )
41
+ end
42
+
43
+ def self.insert_logs(host = "pcache", message = "", number_of_inserts = 1)
44
+ values = ''
45
+ number_of_inserts.times do
46
+ values += "('#{host}', '#{message}'), "
47
+ end
48
+ self.client.query(
49
+ "INSERT INTO #{@@mysql_db}.SystemEvents(FromHost, Message)\
50
+ VALUES #{values.chomp(', ')}"
51
+ )
52
+ end
53
+
54
+ def self.seed_db(number_of_inserts = 10)
55
+ self.insert_logs(
56
+ "blahost",
57
+ "GET /boring/stuff/uninteresting - Firefox - 500 GET",
58
+ number_of_inserts
59
+ )
60
+ self.insert_logs(
61
+ "pcache",
62
+ '- - [25/Feb/2014:17:28:57 +0100] \"GET /content/2/719/54986/simvid_1.f4v HTTP/1.1\" 200 6741309 \"-\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:27.0) Gecko/20100101 Firefox/27.0\"',
63
+ number_of_inserts
64
+ )
65
+ self.insert_logs(
66
+ "pcache",
67
+ '- - [25/Feb/2014:17:28:57 +0100] \"GET /notcontent/2/719/54986/simvid_1.f4v HTTP/1.1\" 200 6741309 \"-\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:27.0) Gecko/20100101 Firefox/27.0\"',
68
+ number_of_inserts
69
+ )
70
+ end
71
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sms-logparser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - niwo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-28 00:00:00.000000000 Z
11
+ date: 2014-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -98,6 +98,8 @@ files:
98
98
  - lib/sms-logparser/cli.rb
99
99
  - lib/sms-logparser/version.rb
100
100
  - sms-logparser.gemspec
101
+ - spec/logparser_spec.rb
102
+ - spec/spec_helper.rb
101
103
  homepage: https://github.com/swisstxt/sms-logparser
102
104
  licenses:
103
105
  - MIT
@@ -122,4 +124,6 @@ rubygems_version: 2.0.3
122
124
  signing_key:
123
125
  specification_version: 4
124
126
  summary: SMS Logparser
125
- test_files: []
127
+ test_files:
128
+ - spec/logparser_spec.rb
129
+ - spec/spec_helper.rb