Created
September 5, 2014 01:04
-
-
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)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 © #{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