You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by se...@apache.org on 2020/06/04 20:37:55 UTC
[whimsy] branch master updated: Add some more tests for ASF::SVN
module
This is an automated email from the ASF dual-hosted git repository.
sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git
The following commit(s) were added to refs/heads/master by this push:
new 3f355e6 Add some more tests for ASF::SVN module
3f355e6 is described below
commit 3f355e636d1e8a11e492a1d082f244193f2b4393
Author: Sebb <se...@apache.org>
AuthorDate: Thu Jun 4 21:37:43 2020 +0100
Add some more tests for ASF::SVN module
---
lib/spec/lib/svn_spec.rb | 104 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 104 insertions(+)
diff --git a/lib/spec/lib/svn_spec.rb b/lib/spec/lib/svn_spec.rb
index 0a491a1..35d5df2 100644
--- a/lib/spec/lib/svn_spec.rb
+++ b/lib/spec/lib/svn_spec.rb
@@ -109,4 +109,108 @@ describe ASF::SVN do
end
+ describe "ASF:SVN.private_public" do
+ it "should return an array of size 2" do
+ res = ASF::SVN.private_public
+ expect(res.size()).to equal(2)
+ expect(res[0].size).to equal(15) # will need to be adjusted from time to time
+ expect(res[1].size).to equal(11) # ditto.
+ end
+ end
+
+ describe "ASF:SVN.getInfo(repo)" do
+ it "getInfo(public workspace) should return a string at least 30 chars long starting with 'Path: '" do
+ pub = ASF::SVN.private_public()[1]
+ repo = ASF::SVN[pub[1]] # select a public repo
+ out, err = ASF::SVN.getInfo(repo)
+ expect(err).to eq(nil)
+ expect(out.size).to be > 30
+ expect(out).to start_with("Path: ")
+ end
+
+ it "getInfo(private workspace) should return a string at least 30 chars long starting with 'Path: '" do
+ prv = ASF::SVN.private_public()[0]
+ repo = ASF::SVN[prv[1]] # select a private repo
+ out, err = ASF::SVN.getInfo(repo)
+ expect(err).to eq(nil)
+ expect(out.size).to be > 30
+ expect(out).to start_with("Path: ")
+ end
+
+ it "getInfo(public url) should return a string at least 30 chars long starting with 'Path: '" do
+ pub = ASF::SVN.private_public()[1]
+ repo = ASF::SVN.svnurl(pub[1]) # select a public repo url
+ expect(repo).to start_with("https://")
+ out, err = ASF::SVN.getInfo(repo)
+ expect(err).to eq(nil)
+ expect(out.size).to be > 30
+ expect(out).to start_with("Path: ")
+ end
+
+# How to ensure local SVN cached auth is not used?
+# it "getInfo(private url) should return a string at least 30 chars long starting with 'Path: '" do
+# prv = ASF::SVN.private_public()[0]
+# repo = ASF::SVN.svnurl(prv[1]) # select a private repo
+# expect(repo).to start_with("https://")
+# out, err = ASF::SVN.getInfo(repo)
+# expect(err).to eq(nil)
+# expect(out.size).to be > 30
+# expect(out).to start_with("Path: ")
+# end
+
+ end
+
+ describe "ASF:SVN.getInfoItem" do
+ it "getInfoItem(public checkout,'url') should return the URL" do
+ pub = ASF::SVN.private_public()[1]
+ repo = ASF::SVN[pub[1]] # select a public repo
+ out, err = ASF::SVN.getInfoItem(repo,'url')
+ expect(err).to eq(nil)
+ expect(out).to eq(ASF::SVN.svnurl(pub[1]))
+ end
+
+ it "getInfoItem(public url,'url') should return the URL" do
+ pub = ASF::SVN.private_public()[1]
+ repo = ASF::SVN.svnurl(pub[1]) # select a public repo URL
+ out, err = ASF::SVN.getInfoItem(repo,'url')
+ expect(err).to eq(nil)
+ expect(out).to eq(ASF::SVN.svnurl(pub[1]))
+ end
+ end
+
+ describe "ASF:SVN.list" do
+ it "list(public checkout,'url') should return a list" do
+ pub = ASF::SVN.private_public()[1]
+ repo = ASF::SVN[pub[1]] # select a public repo
+ out, err = ASF::SVN.list(repo)
+ expect(err).to eq(nil)
+ expect(out.size).to be > 10 # need a better test
+ end
+
+ it "list(public url,'url') should return a list" do
+ pub = ASF::SVN.private_public()[1]
+ repo = ASF::SVN.svnurl(pub[1]) # select a public repo URL
+ out, err = ASF::SVN.list(repo)
+ expect(err).to eq(nil)
+ expect(out.size).to be > 10 # need a better test
+ end
+ end
+
+ describe "ASF:SVN.get" do
+ it "get(public checkout,'_template.xml') should return the revision and contents" do
+ repo = File.join(ASF::SVN['attic-xdocs'],'_template.xml')
+ revision, content = ASF::SVN.get(repo)
+ expect(revision).to match(/\d+/)
+ expect(content.size).to be > 1000 # need a better test
+ end
+
+ it "get(public url,'_template.xml') should return the revision and contents" do
+ repo = File.join(ASF::SVN.svnurl('attic-xdocs'),'_template.xml')
+ revision, content = ASF::SVN.get(repo)
+ expect(revision).to match(/\d+/)
+ expect(content.size).to be > 1000 # need a better test
+ end
+ end
+
+
end
\ No newline at end of file