Hello community,

here is the log from the commit of package yast2-dhcp-server for 
openSUSE:Factory checked in at 2016-10-20 23:10:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-dhcp-server (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-dhcp-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-dhcp-server"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-dhcp-server/yast2-dhcp-server.changes      
2016-10-10 16:21:24.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-dhcp-server.new/yast2-dhcp-server.changes 
2016-10-20 23:10:40.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Oct 20 07:31:59 UTC 2016 - [email protected]
+
+- allow empty string in primary name server field for dynamic DNS
+  option to allow what is suggested in documentation for local DNS
+  servers (bsc#736496)
+- 3.2.1
+
+-------------------------------------------------------------------

Old:
----
  yast2-dhcp-server-3.2.0.tar.bz2

New:
----
  yast2-dhcp-server-3.2.1.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2-dhcp-server.spec ++++++
--- /var/tmp/diff_new_pack.I9CxqJ/_old  2016-10-20 23:10:41.000000000 +0200
+++ /var/tmp/diff_new_pack.I9CxqJ/_new  2016-10-20 23:10:41.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-dhcp-server
-Version:        3.2.0
+Version:        3.2.1
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ yast2-dhcp-server-3.2.0.tar.bz2 -> yast2-dhcp-server-3.2.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-dhcp-server-3.2.0/.travis.yml 
new/yast2-dhcp-server-3.2.1/.travis.yml
--- old/yast2-dhcp-server-3.2.0/.travis.yml     2016-10-06 14:24:28.000000000 
+0200
+++ new/yast2-dhcp-server-3.2.1/.travis.yml     2016-10-20 10:14:38.000000000 
+0200
@@ -5,7 +5,7 @@
     # disable rvm, use system Ruby
     - rvm reset
     - wget 
https://raw.githubusercontent.com/yast/yast-devtools/master/travis-tools/travis_setup.sh
-    - sh ./travis_setup.sh -p "rake yast2-devtools yast2-testsuite yast2 
yast2-perl-bindings" -g "rspec:3.3.0 yast-rake gettext"
+    - sh ./travis_setup.sh -p "rake yast2-devtools yast2-testsuite yast2 
yast2-perl-bindings" -g "rspec:3.3.0 yast-rake gettext simplecov coveralls"
 script:
     - rake check:syntax
     - rake check:pot
@@ -13,4 +13,5 @@
     - make
     - sudo make install
     - make check
+    - COVERAGE=1 rake test:unit
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-dhcp-server-3.2.0/README.md 
new/yast2-dhcp-server-3.2.1/README.md
--- old/yast2-dhcp-server-3.2.0/README.md       2016-10-06 14:24:28.000000000 
+0200
+++ new/yast2-dhcp-server-3.2.1/README.md       2016-10-20 10:14:38.000000000 
+0200
@@ -2,4 +2,4 @@
 
 [![Travis 
Build](https://travis-ci.org/yast/yast-dhcp-server.svg?branch=master)](https://travis-ci.org/yast/yast-dhcp-server)
 [![Jenkins 
Build](http://img.shields.io/jenkins/s/https/ci.opensuse.org/yast-dhcp-server-master.svg)](https://ci.opensuse.org/view/Yast/job/yast-dhcp-server-master/)
-
+[![Coverage 
Status](https://coveralls.io/repos/github/yast/yast-dhcp-server/badge.svg?branch=master)](https://coveralls.io/github/yast/yast-dhcp-server?branch=master)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-dhcp-server-3.2.0/package/yast2-dhcp-server.changes 
new/yast2-dhcp-server-3.2.1/package/yast2-dhcp-server.changes
--- old/yast2-dhcp-server-3.2.0/package/yast2-dhcp-server.changes       
2016-10-06 14:24:28.000000000 +0200
+++ new/yast2-dhcp-server-3.2.1/package/yast2-dhcp-server.changes       
2016-10-20 10:14:38.000000000 +0200
@@ -1,4 +1,12 @@
 -------------------------------------------------------------------
+Thu Oct 20 07:31:59 UTC 2016 - [email protected]
+
+- allow empty string in primary name server field for dynamic DNS
+  option to allow what is suggested in documentation for local DNS
+  servers (bsc#736496)
+- 3.2.1
+
+-------------------------------------------------------------------
 Thu Oct  6 11:25:00 UTC 2016 - [email protected]
 
 - prevent adding "pool" to global scope as it is allowed only in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-dhcp-server-3.2.0/package/yast2-dhcp-server.spec 
new/yast2-dhcp-server-3.2.1/package/yast2-dhcp-server.spec
--- old/yast2-dhcp-server-3.2.0/package/yast2-dhcp-server.spec  2016-10-06 
14:24:28.000000000 +0200
+++ new/yast2-dhcp-server-3.2.1/package/yast2-dhcp-server.spec  2016-10-20 
10:14:38.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-dhcp-server
-Version:        3.2.0
+Version:        3.2.1
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-dhcp-server-3.2.0/src/include/dhcp-server/widgets.rb 
new/yast2-dhcp-server-3.2.1/src/include/dhcp-server/widgets.rb
--- old/yast2-dhcp-server-3.2.0/src/include/dhcp-server/widgets.rb      
2016-10-06 14:24:28.000000000 +0200
+++ new/yast2-dhcp-server-3.2.1/src/include/dhcp-server/widgets.rb      
2016-10-20 10:14:38.000000000 +0200
@@ -702,27 +702,29 @@
     # @param [String] id string widget id
     # @param [Hash] event map event that is handled
     # @return [Boolean] true if validation succeeded
-    def DNSZonesValidate(id, event)
-      event = deep_copy(event)
-      if !Convert.to_boolean(UI.QueryWidget(Id("ddns_enable"), :Value))
-        return true
-      end
-      ret = true
-      Builtins.foreach(["zone", "zone_ip", "reverse_zone", "reverse_ip"]) do 
|w|
-        value = Convert.to_string(UI.QueryWidget(Id(w), :Value))
+    def DNSZonesValidate(_id, _event)
+      return true if !UI.QueryWidget(Id("ddns_enable"), :Value)
+
+      ["zone", "zone_ip", "reverse_zone", "reverse_ip"].each do |w|
+        value = UI.QueryWidget(Id(w), :Value)
         if (w == "zone" || w == "reverse_zone") &&
             Builtins.regexpmatch(value, "^.*\\.$")
           value = Builtins.regexpsub(value, "^(.*)\\.$", "\\1")
         end
-        if !(Hostname.CheckFQ(value) ||
-            Builtins.contains(["zone_ip", "reverse_ip"], w) && 
IP.Check4(value))
+        ip_field = ["zone_ip", "reverse_ip"].include?(w)
+        # for primary dns ip can be used
+        valid_ip = ip_field && IP.Check4(value)
+        # for dns also empty value can be used
+        default_ip = ip_field && value.empty?
+
+        if !(Hostname.CheckFQ(value) || valid_ip || default_ip)
           UI.SetFocus(Id(w))
           Report.Error(Hostname.ValidFQ)
-          ret = false
-          raise Break
+          return false
         end
       end
-      ret
+
+      true
     end
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-dhcp-server-3.2.0/test/test_helper.rb 
new/yast2-dhcp-server-3.2.1/test/test_helper.rb
--- old/yast2-dhcp-server-3.2.0/test/test_helper.rb     1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-dhcp-server-3.2.1/test/test_helper.rb     2016-10-20 
10:14:38.000000000 +0200
@@ -0,0 +1,25 @@
+ENV["Y2DIR"] = File.expand_path("../../src", __FILE__)
+
+require "yast"
+require "yast/rspec"
+
+
+if ENV["COVERAGE"]
+  require "simplecov"
+  SimpleCov.start do
+    add_filter "/test/"
+  end
+
+  # for coverage we need to load all ruby files
+  src_location = File.expand_path("../../src", __FILE__)
+  Dir["#{src_location}/{module,lib}/**/*.rb"].each { |f| require_relative f }
+
+  # use coveralls for on-line code coverage reporting at Travis CI
+  if ENV["TRAVIS"]
+    require "coveralls"
+    SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
+      SimpleCov::Formatter::HTMLFormatter,
+      Coveralls::SimpleCov::Formatter
+    ]
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-dhcp-server-3.2.0/test/widgets_test.rb 
new/yast2-dhcp-server-3.2.1/test/widgets_test.rb
--- old/yast2-dhcp-server-3.2.0/test/widgets_test.rb    1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-dhcp-server-3.2.1/test/widgets_test.rb    2016-10-20 
10:14:38.000000000 +0200
@@ -0,0 +1,73 @@
+require_relative "test_helper"
+
+Yast.import "UI"
+
+module Yast
+  class Test < Yast::Client
+    def initialize
+      Yast.include self, "dhcp-server/widgets.rb"
+    end
+  end
+end
+
+
+
+describe "Yast::DhcpServerWidgetsInclude" do
+  subject { Yast::Test.new }
+
+  describe "#DNSZonesValidate" do
+    before do
+      allow(Yast::UI).to receive(:QueryWidget).with(Id("ddns_enable"), :Value)
+        .and_return(true)
+
+      allow(Yast::UI).to receive(:QueryWidget).with(Id("zone_ip"), :Value)
+        .and_return("127.0.0.1")
+      allow(Yast::UI).to receive(:QueryWidget).with(Id("reverse_ip"), :Value)
+        .and_return("127.0.0.1")
+      allow(Yast::UI).to receive(:QueryWidget).with(Id("zone"), :Value)
+        .and_return("test.suse.cz")
+      allow(Yast::UI).to receive(:QueryWidget).with(Id("reverse_zone"), :Value)
+        .and_return("test2.suse.cz")
+    end
+
+    it "returns true if dynanic dns is not enabled" do
+      allow(Yast::UI).to receive(:QueryWidget).with(Id("ddns_enable"), :Value)
+        .and_return(false)
+      # add one failing to test that it do not fail
+      allow(Yast::UI).to receive(:QueryWidget).with(Id("zone_ip"), :Value)
+        .and_return("666.666.666.666")
+
+      expect(subject.DNSZonesValidate("ddns_enable", {})).to eq true
+    end
+
+    it "returns false and report error if zone_ip is invalid IPv4" do
+      allow(Yast::UI).to receive(:QueryWidget).with(Id("zone_ip"), :Value)
+        .and_return("666.666.666.666")
+      expect(Yast::Report).to receive(:Error)
+
+      expect(subject.DNSZonesValidate("ddns_enable", {})).to eq false
+    end
+
+    it "returns false and report error if zone is not FQDN" do
+      allow(Yast::UI).to receive(:QueryWidget).with(Id("zone"), :Value)
+        .and_return("bla***bla")
+      expect(Yast::Report).to receive(:Error)
+
+      expect(subject.DNSZonesValidate("ddns_enable", {})).to eq false
+    end
+
+    it "returns true even if zone contains trailing comma" do
+      allow(Yast::UI).to receive(:QueryWidget).with(Id("zone"), :Value)
+        .and_return("test.suse.cz.")
+
+      expect(subject.DNSZonesValidate("ddns_enable", {})).to eq true
+    end
+
+    it "returns true if zone_ip is empty" do
+      allow(Yast::UI).to receive(:QueryWidget).with(Id("zone_ip"), :Value)
+        .and_return("")
+
+      expect(subject.DNSZonesValidate("ddns_enable", {})).to eq true
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-dhcp-server-3.2.0/test/yapi_dhcpd_test.rb 
new/yast2-dhcp-server-3.2.1/test/yapi_dhcpd_test.rb
--- old/yast2-dhcp-server-3.2.0/test/yapi_dhcpd_test.rb 2016-10-06 
14:24:28.000000000 +0200
+++ new/yast2-dhcp-server-3.2.1/test/yapi_dhcpd_test.rb 2016-10-20 
10:14:38.000000000 +0200
@@ -1,9 +1,5 @@
 #!/usr/bin/env rspec
 
-require 'rspec'
-ENV["Y2DIR"] = File.expand_path("../../src", __FILE__)
-require "yast"
-
 module Yast
   import "YaPI::DHCPD"
   import "Service"


Reply via email to