lazy-check 1.2.1 → 1.2.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
  SHA256:
3
- metadata.gz: 8a356d327311f566f5327c5f614e5de2b1978a3e8332e93f46b2e780ba39e266
4
- data.tar.gz: 198d81f34d63fb71225b4c639845069feb7f5b0a2a07c25766142cfbd57ed516
3
+ metadata.gz: 83a4373e41aeeabf3eb57866324069a1134ee606065556cbf17ed78b10de5cff
4
+ data.tar.gz: 6f7448fe3242c1dcd5189e50e92f2aeead83fe6b6da8dd974b9974c1e14d14a7
5
5
  SHA512:
6
- metadata.gz: d351d75801a9159e5c07d38eefc9d16d5c1b1799dea46560ffa1be921c1d37a4b1de57daf60f9bbf58af4ecdf7e6518dcf521c18adaf49a90d5fe5dc74bc375f
7
- data.tar.gz: 4da6ebe703af6252be932aee3dc1e9c9cf00fe8ac36d8c4c91546e354615d39a497dde210342ac10e31bdf23ac9645b61e3ebfc2fdc46ed7f5e0dd7666f918fd
6
+ metadata.gz: 1bec5356e9df9a71fb5abe4e8db50c6990551ba1dd360ea7d93511a424cbb7f90c7aeb53aa18988dc0138b2b8f5747c4e6dbdb19c4b1c60d38054f687c233d83
7
+ data.tar.gz: 0b9b2cff492148a86222f32e01f1ef2b7ba70deafeca6637fa69fdb06e82740dd6a890342565fcfdb2d1a7337ad8be1007d5c8b24df49a4e09753c5746e5b4fb
data/README-fr.md CHANGED
@@ -37,7 +37,7 @@ Lazy::Checker.check(code, check)
37
37
  # Succès 1 Failure 0 Temps ...
38
38
  ~~~
39
39
 
40
- On peut aussi obtenir les résultats en retour de méthode (c'est un `Lazy::Checker::Reporter`)
40
+ On peut aussi obtenir les résultats en retour de méthode (c'est un `Lazy::Checker::Reporter`).
41
41
 
42
42
  ~~~ruby
43
43
  Lazy::Checker.check(code, check, **{return_result: true})
@@ -51,7 +51,7 @@ Lazy::Checker.check(code, check, **{return_result: true})
51
51
  Une « recette » est un fichier `YAML` qui définit l'url d'une page internet, ainsi que les checks à effectuer dessus. Cf. ci-dessous.
52
52
 
53
53
  ~~~ruby
54
- require "lazy-check"
54
+ require "lazy/check"
55
55
 
56
56
  checker = Lazy::Checker.new("path/to/recipe.yaml")
57
57
  checker.check
@@ -61,7 +61,7 @@ checker.check
61
61
  Si la recette se trouve là où le terminal se trouve, il suffit de faire :
62
62
 
63
63
  ~~~ruby
64
- require "lazy-check"
64
+ require "lazy/check"
65
65
 
66
66
  Lazy::Checker.new.check
67
67
  ~~~
@@ -83,21 +83,23 @@ tests:
83
83
  tag: 'span#range'
84
84
  empty: true
85
85
 
86
- - name: "Une redirection"
87
- url: "redirection.html"
88
- redirect_to: "https://nouvelle.url.net"
86
+ - name: "Une redirection"
87
+ url: "redirection.html"
88
+ redirect_to: "https://nouvelle.url.net"
89
89
 
90
- - name: "Une page erronée"
91
- url: "page_inexistante.html"
92
- response: 404
90
+ - name: "Une page erronée"
91
+ url: "page_inexistante.html"
92
+ response: 404
93
93
  ~~~
94
94
 
95
95
  ### Check Properties
96
96
 
97
+ Les "checks" ci-dessus peuvent définir les propriétés suivantes :
98
+
97
99
  ~~~yaml
98
100
  tag: [String] Le sélector
99
101
  count: [Integer] Nombre attendu d'éléments
100
- empty: [Bool] Si true, doit être vide ou non vide
102
+ empty: [Bool] Si true, doit être vide, si false, non vide
101
103
  direct_child: [Bool] Si true, doit être un enfant direct
102
104
  text: [String] Le texte qui doit être contenu
103
105
  contains: [String|Array] Ce que doit contenir la page
@@ -120,7 +122,7 @@ tests:
120
122
  response: 200
121
123
  ~~~
122
124
 
123
- Vérifier qu’une page contient les éléments de base
125
+ Vérifier qu’une page contient les éléments de base :
124
126
 
125
127
  ~~~yaml
126
128
  # recipe.yaml
@@ -128,7 +130,7 @@ Vérifier qu’une page contient les éléments de base
128
130
  name: "Check simple de l'existence des éléments de base"
129
131
  base: 'https://monsite.net'
130
132
  tests:
131
- - name: "La page base.html contient les éléments de base"
133
+ - name: "La page index.html contient les éléments de base"
132
134
  url: 'index.html'
133
135
  checks:
134
136
  - tag: 'header'
@@ -136,7 +138,13 @@ tests:
136
138
  - tag: 'footer'
137
139
  ~~~
138
140
 
141
+ ## Tester le gem
142
+
143
+ Lancer les tests avec :
139
144
 
145
+ ~~~
146
+ rake test
147
+ ~~~
140
148
 
141
149
  ## Development
142
150
 
data/README.md CHANGED
@@ -37,98 +37,100 @@ Lazy::Checker.check(code, check)
37
37
  # Success 1 Failures 0 Duration ...
38
38
  ~~~
39
39
 
40
- On peut aussi obtenir les résultats en retour de méthode (c'est un `Lazy::Checker::Reporter`)
40
+ You can also obtain the results in method return (this is a `Lazy::Checker::Reporter`).
41
41
 
42
42
  ~~~ruby
43
43
  Lazy::Checker.check(code, check, **{return_result: true})
44
44
  # => Reporter
45
45
  ~~~
46
46
 
47
- > Noter que dans ce cas-là, rien n'est écrit en console.
47
+ > Note that in this case, nothing is written in the console.
48
48
 
49
- ## Pour un test avec recette
49
+ ## For a test with a recipe
50
50
 
51
- Une « recette » est un fichier `YAML` qui définit l'url d'une page internet, ainsi que les checks à effectuer dessus. Cf. ci-dessous.
51
+ A "recipe" is a `YAML` file that defines the url of a web page, and the checks to be performed on it. See below.
52
52
 
53
53
  ~~~ruby
54
- require "lazy-check"
54
+ require "lazy/check"
55
55
 
56
56
  checker = Lazy::Checker.new("path/to/recipe.yaml")
57
57
  checker.check
58
- # => Produit le résultat
58
+ # => Produces the result
59
59
  ~~~
60
60
 
61
- Si la recette se trouve le terminal se trouve, il suffit de faire :
61
+ If the recipe is located where the terminal is, simply do:
62
62
 
63
63
  ~~~ruby
64
- require "lazy-check"
64
+ require "lazy/check"
65
65
 
66
66
  Lazy::Checker.new.check
67
67
  ~~~
68
68
 
69
- La recette (`recipe.yaml`) définit les vérifications qu'il faut effectuer.
69
+ The recipe (`recipe.yaml`) defines the checks to be performed.
70
70
 
71
71
  ~~~yaml
72
72
  ---
73
- name: "Nom général de la recette"
74
- base: https://www.mon.domaine.net
73
+ name: "Name for this recipe"
74
+ base: https://www.my.domain.net
75
75
  tests:
76
- - name: "Le premier test"
77
- url: "" # donc la base
76
+ - name: "My first test"
77
+ url: "" # so the base
78
78
  checks:
79
- - name: "Existence du DIV#content avec du texte"
79
+ - name: "Existence of DIV#content with text"
80
80
  tag: 'div#content'
81
81
  empty: false
82
- - name: "Existence du SPAN#range sans texte"
82
+ - name: "Existence of SPAN#range without text"
83
83
  tag: 'span#range'
84
84
  empty: true
85
85
 
86
- - name: "Une redirection"
87
- url: "redirection.html"
88
- redirect_to: "https://nouvelle.url.net"
86
+ - name: "A redirection"
87
+ url: "redirection.html"
88
+ redirect_to: "https://new.url.net"
89
89
 
90
- - name: "Une page erronée"
91
- url: "page_inexistante.html"
92
- response: 404
90
+ - name: "A wrong page"
91
+ url: "page_unfound.html"
92
+ response: 404
93
93
  ~~~
94
94
 
95
95
  ### Check Properties
96
96
 
97
+ The above "checks" can define the following properties:
98
+
97
99
  ~~~yaml
98
- tag: [String] Le sélector
99
- count: [Integer] Nombre attendu d'éléments
100
- empty: [Bool] Si true, doit être vide ou non vide
101
- direct_child: [Bool] Si true, doit être un enfant direct
102
- text: [String] Le texte qui doit être contenu
103
- contains: [String|Array] Ce que doit contenir la page
104
- min_length: [Integer] La longueur minimum du contenu (text seulement)
105
- max_length: [Integer] La longueur maximum du contenu (text seulement)
100
+ tag: [String] The selector
101
+ count: [Integer] Expected number of elements
102
+ empty: [Bool] If true, must be empty, if false, must be non-empty
103
+ direct_child: [Bool] If true, must be a direct child
104
+ text: [String] The text that must be contained
105
+ contains: [String|Array] What the page should contain
106
+ min_length: [Integer] Minimum content length (text only)
107
+ max_length: [Integer] Maximum content length (text only)
106
108
  ~~~
107
109
 
108
- ## Exemples
110
+ ## Examples
109
111
 
110
- Simplement vérifier qu’une page réponde correctement :
112
+ Simply check that a page responds correctly:
111
113
 
112
114
  ~~~yaml
113
115
  # recipe.yaml
114
116
  ---
115
- name: "La page existe"
116
- base: 'https://monsite.net'
117
+ name: "Page exists"
118
+ base: 'https://mywebsite.net'
117
119
  tests:
118
- - name: "La page index.html existe et répond correctement"
120
+ - name: "The index.html page exists and responds correctly"
119
121
  url: 'index.html'
120
122
  response: 200
121
123
  ~~~
122
124
 
123
- Vérifier qu’une page contient les éléments de base
125
+ Check that a page contains the basic elements.
124
126
 
125
127
  ~~~yaml
126
128
  # recipe.yaml
127
129
  ---
128
- name: "Check simple de l'existence des éléments de base"
129
- base: 'https://monsite.net'
130
+ name: "Simple check on the existence of basic elements"
131
+ base: 'https://mywebsite.net'
130
132
  tests:
131
- - name: "La page base.html contient les éléments de base"
133
+ - name: "The index.html page contains the basic elements"
132
134
  url: 'index.html'
133
135
  checks:
134
136
  - tag: 'header'
@@ -136,7 +138,13 @@ tests:
136
138
  - tag: 'footer'
137
139
  ~~~
138
140
 
141
+ ## Tests
142
+
143
+ Run the tests:
139
144
 
145
+ ~~~
146
+ rake test
147
+ ~~~
140
148
 
141
149
  ## Development
142
150
 
@@ -16,7 +16,7 @@ module Nokogiri
16
16
 
17
17
  # @return true si le node est vraiment vide
18
18
  def empty?
19
- not(children?) && content.empty?
19
+ not(children?) && content.strip.empty?
20
20
  end
21
21
 
22
22
  def children?
@@ -24,11 +24,11 @@ module Nokogiri
24
24
  end
25
25
 
26
26
  def has_text?
27
- not(text.empty?)
27
+ not(text.strip.empty?)
28
28
  end
29
29
 
30
30
  def has_no_text?
31
- text.empty?
31
+ text.strip.empty?
32
32
  end
33
33
 
34
34
  # Test du contenu
@@ -141,7 +141,7 @@ module Nokogiri
141
141
 
142
142
  # @return [Integer] La longueur du texte
143
143
  def length
144
- @length ||= text.length
144
+ @length ||= text.strip.length
145
145
  end
146
146
  end #/class XML::Element
147
147
  end #/module Nokogiri
@@ -7,6 +7,8 @@ class Checker
7
7
 
8
8
  attr_reader :reporter
9
9
 
10
+ attr_reader :options
11
+
10
12
  def initialize(recipe_path = nil)
11
13
  recipe_path ||= File.expand_path('.', 'recipe.yaml')
12
14
  File.exist?(recipe_path) || raise(ERRORS[200] % {path: recipe_path})
@@ -24,6 +26,7 @@ class Checker
24
26
  # La méthode (silencieuse) qui produit le check
25
27
  # ("silencieuse" parce qu'elle ne produit que des raises)
26
28
  def proceed_check(**options)
29
+ @options = options
27
30
  @reporter = Reporter.new(self)
28
31
  @reporter.start
29
32
  recipe[:tests].collect do |dtest|
@@ -32,10 +35,10 @@ class Checker
32
35
  test.check(**options)
33
36
  end
34
37
  @reporter.end
35
- if options[:return_result]
38
+ if no_output?
36
39
  return @reporter
37
40
  else
38
- @reporter.display unless no_output?
41
+ @reporter.display
39
42
  end
40
43
  end
41
44
 
@@ -45,6 +48,10 @@ class Checker
45
48
  not(base.nil?)
46
49
  end
47
50
 
51
+ def no_output?
52
+ options[:return_result] === true
53
+ end
54
+
48
55
  def recipe_valid?
49
56
  not(recipe.nil?) || raise(RecipeError, ERRORS[202])
50
57
  recipe.is_a?(Hash) || raise(RecipeError, ERRORS[203] % {c: recipe.class.name})
@@ -55,10 +62,6 @@ class Checker
55
62
  recipe[:tests].is_a?(Array) || raise(RecipeError, ERRORS[205] % {c: recipe[:tests].class.name})
56
63
  end
57
64
 
58
- def no_output?
59
- @options[:output] === false
60
- end
61
-
62
65
  # --- Données ---
63
66
 
64
67
  def name
@@ -33,7 +33,6 @@ class Checker
33
33
  checker.check_against(@data_check, **options)
34
34
  end
35
35
 
36
-
37
36
  private
38
37
 
39
38
  # Méthode qui vérifie la conformité de la donnée
@@ -80,6 +79,8 @@ class Checker
80
79
  # de test)
81
80
  attr_reader :report
82
81
 
82
+ attr_reader :options
83
+
83
84
  def initialize(xml_code)
84
85
  @xml_code = xml_code
85
86
  @urler = Checker::Url.new(xml_code)
@@ -91,6 +92,7 @@ class Checker
91
92
  # :return_result Si true, on retourne les données au lieu de les afficher
92
93
  #
93
94
  def check_against(data_check, **options)
95
+ @options = options
94
96
  @report = Reporter.new(self)
95
97
  @report.start
96
98
  check_case = Checker::CheckCase.new(urler, data_check, @report)
@@ -103,6 +105,14 @@ class Checker
103
105
  end
104
106
  end
105
107
 
108
+ def name
109
+ MESSAGES[:CodeToTest]
110
+ end
111
+
112
+ def no_output?
113
+ options[:return_result] === true
114
+ end
115
+
106
116
  end #/class Code
107
117
  end #/class Checker
108
118
  end #/module Lazy
@@ -15,6 +15,7 @@ Success: 'Success'
15
15
  Failures: 'Failures'
16
16
  Duration: 'Duration'
17
17
  PleaseWait: 'Please wait…'
18
+ CodeToTest: 'Code to test'
18
19
 
19
20
  # -- Les messages de retour des checks --
20
21
 
@@ -15,6 +15,7 @@ Success: 'Succès'
15
15
  Failures: 'Échecs'
16
16
  Duration: 'Durée'
17
17
  PleaseWait: 'Merci de patienter…'
18
+ CodeToTest: 'Code à tester'
18
19
 
19
20
  # -- Les messages de retour des checks --
20
21
 
@@ -58,10 +58,12 @@ class Checker
58
58
  end
59
59
 
60
60
  def start
61
- clear unless debug?
62
- puts "\n\n"
63
- puts "#{checker.name}".jaune
64
- puts MESSAGES[:PleaseWait].bleu
61
+ unless checker.no_output?
62
+ clear unless debug?
63
+ puts "\n\n"
64
+ puts "#{checker.name}".jaune
65
+ puts MESSAGES[:PleaseWait].bleu
66
+ end
65
67
  @start_time = Time.now
66
68
  @successs = []
67
69
  @failures = []
@@ -1,5 +1,5 @@
1
1
  module Lazy
2
2
  module Check
3
- VERSION = "1.2.1"
3
+ VERSION = "1.2.4"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazy-check
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philippe Perret