Skip to content

Instantly share code, notes, and snippets.

@NigelThorne
Created September 5, 2014 01:04
Show Gist options
  • Save NigelThorne/04775270abd46b78e262 to your computer and use it in GitHub Desktop.
Save NigelThorne/04775270abd46b78e262 to your computer and use it in GitHub Desktop.
Sinatra app wrapping QC library call to reorder test in a test_set. (Using Slim and streaming)
require 'sinatra'
require 'slim'
require './reorder_tests_in_test_lab'
require 'pit'
set :bind, '0.0.0.0'
set :slim, :pretty => true
@@config = Pit.get("qc", :require => {
"username" => "qc_user",
"password" => "qc_password",
"url" => "qc_url"
})
class StreamOutput
def initialize(stream)
@stream = stream
end
def puts(*strings)
strings.each{|s| @stream << s.chomp + "\n" }
end
end
def run(project, id_or_range, output)
@settings = Settings.new( @@config["url"], @@config["username"], @@config["password"], project)
re_order_tests( @settings, id_or_range, output)
end
get "/" do
slim :index
end
get "/reorder" do
slim :index
end
post "/reorder" do
@project = params["project"]
@id_or_range = params["id_or_range"]
@output_log = "[OUTPUT]"
before, after = slim(:index).split(@output_log)
stream do |out|
out << before
run(@project, @id_or_range, StreamOutput.new(out))
out << after
end
end
__END__
@@layout
doctype html
html
head
title Reorder QC TestSets
meta charset="utf-8"
style
| label { display: inline-block; width: 210px; text-align: right; }
body
header
h1.title Reorder QC TestSets
== yield
footer
small
| Copyright &copy; #{Time.now.year} Nigel Thorne
@@index
div#result
pre
== @output_log
br
br
form[ action="/reorder" method="post" ]
label Project:
input[ type='text'
name="project"
value=@project ]
br
label ID or Range (xxx-yyy):
input[ type='text'
name="id_or_range"
value=@id_or_range ]
br
label
input[ type='submit'
value="Go!"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment