reportir 0.3.3 → 0.3.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 +4 -4
- data/lib/reportir.rb +58 -33
- data/lib/reportir/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: b1a0a872f186144298bd154d38a3203533f390e0
         | 
| 4 | 
            +
              data.tar.gz: 76ea24f9b85688e68cff714959351038940bf861
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 226a7bd746ce679c3ace4c4d8b92ac7ea1f5ab43d59ac5471427857bc9e67b18ad0af8d8c925d05740681fbb636a408379c74276814dc9d47e43d9508ce8c4be
         | 
| 7 | 
            +
              data.tar.gz: dd9a43850739b4a1c9f27ed17e9cc398529deb81269f50fdb30ebfac84d1ee1140d078a47929a62a7791e7d4bc84dad5c498f8bc4be03236b8cb6c761b98b1bb
         | 
    
        data/lib/reportir.rb
    CHANGED
    
    | @@ -2,12 +2,25 @@ require "reportir/version" | |
| 2 2 | 
             
            require 's3_uploader'
         | 
| 3 3 | 
             
            require 'aws-sdk'
         | 
| 4 4 |  | 
| 5 | 
            +
            #TODO: RSpec::Core::Formatters.register
         | 
| 6 | 
            +
             | 
| 5 7 | 
             
            module Reportir
         | 
| 6 8 | 
             
              @@step = 0
         | 
| 7 9 | 
             
              @@tests = [] # has to be array for front-end
         | 
| 8 10 |  | 
| 9 11 | 
             
              def upload_result_to_s3_as_static_site
         | 
| 10 | 
            -
                 | 
| 12 | 
            +
                return upload_everything_to_s3 if upload_to_s3_possible?
         | 
| 13 | 
            +
                save_report_locally
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              def save_report_locally
         | 
| 17 | 
            +
                copy_template_to_temp_dir
         | 
| 18 | 
            +
                write_javascript_models
         | 
| 19 | 
            +
                save_final_markup
         | 
| 20 | 
            +
                puts "Upload to s3 not possible. Missing ENV vars. Report saved to #{local_root}"
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              def upload_everything_to_s3
         | 
| 11 24 | 
             
                upload_template unless template_uploaded?
         | 
| 12 25 | 
             
                clear_previous_results_from_s3
         | 
| 13 26 | 
             
                save_final_markup
         | 
| @@ -15,12 +28,24 @@ module Reportir | |
| 15 28 | 
             
                upload_to_s3
         | 
| 16 29 | 
             
                delete_tmp_files_for_this_test
         | 
| 17 30 | 
             
              end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              def s3_screenshot(method)
         | 
| 33 | 
            +
                create_current_test  #TODO: before-filter??
         | 
| 34 | 
            +
                @@step = @@step+=1
         | 
| 35 | 
            +
                image_name = "#{@@step}-#{method}" 
         | 
| 36 | 
            +
                local_path = "#{local_test_root}/#{image_name}.png"
         | 
| 37 | 
            +
                FileUtils.mkdir_p(local_test_root) unless Dir.exists?(local_test_root)
         | 
| 38 | 
            +
                @browser.screenshot.save(local_path)
         | 
| 39 | 
            +
                current_test[:screenshots] << { name: image_name, src: "#{public_path_for_this_test}/#{image_name}.png" }
         | 
| 40 | 
            +
              end
         | 
| 18 41 |  | 
| 19 42 | 
             
              private
         | 
| 20 43 |  | 
| 44 | 
            +
              def copy_template_to_temp_dir
         | 
| 45 | 
            +
                FileUtils.cp_r(static_site_template_path+'/.', local_root)
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
             | 
| 21 48 | 
             
              def upload_template
         | 
| 22 | 
            -
                puts ''
         | 
| 23 | 
            -
                puts ''
         | 
| 24 49 | 
             
                puts '====== UPLOADING TEMPLATE ========='
         | 
| 25 50 | 
             
                upload_directory(static_site_template_path, '')   
         | 
| 26 51 | 
             
              end
         | 
| @@ -29,11 +54,27 @@ module Reportir | |
| 29 54 | 
             
                bucket.object('index.html').exists?
         | 
| 30 55 | 
             
              end
         | 
| 31 56 |  | 
| 57 | 
            +
              def upload_to_s3_possible?
         | 
| 58 | 
            +
                check_for_env_vars
         | 
| 59 | 
            +
                true
         | 
| 60 | 
            +
              rescue Reportir::Error
         | 
| 61 | 
            +
                return false
         | 
| 62 | 
            +
              end
         | 
| 63 | 
            +
             | 
| 32 64 | 
             
              def check_for_env_vars
         | 
| 33 | 
            -
                raise Reportir::Error.new 'Missing ENV AWS_DEFAULT_BUCKET' unless  | 
| 34 | 
            -
                raise Reportir::Error.new 'Missing ENV AWS_SECRET_ACCESS_KEY' unless  | 
| 35 | 
            -
                raise Reportir::Error.new 'Missing ENV AWS_ACCESS_KEY_ID' unless  | 
| 36 | 
            -
                raise Reportir::Error.new 'Missing ENV AWS_DEFAULT_REGION' unless  | 
| 65 | 
            +
                raise Reportir::Error.new 'Missing ENV AWS_DEFAULT_BUCKET' unless aws_config[:bucket]
         | 
| 66 | 
            +
                raise Reportir::Error.new 'Missing ENV AWS_SECRET_ACCESS_KEY' unless aws_config[:secret]
         | 
| 67 | 
            +
                raise Reportir::Error.new 'Missing ENV AWS_ACCESS_KEY_ID' unless aws_config[:key]
         | 
| 68 | 
            +
                raise Reportir::Error.new 'Missing ENV AWS_DEFAULT_REGION' unless aws_config[:region]
         | 
| 69 | 
            +
              end
         | 
| 70 | 
            +
             | 
| 71 | 
            +
              def aws_config
         | 
| 72 | 
            +
                {
         | 
| 73 | 
            +
                  bucket: ENV['AWS_DEFAULT_BUCKET'],
         | 
| 74 | 
            +
                  secret: ENV['AWS_SECRET_ACCESS_KEY'],
         | 
| 75 | 
            +
                  key: ENV['AWS_ACCESS_KEY_ID'],
         | 
| 76 | 
            +
                  region: ENV['AWS_DEFAULT_REGION']
         | 
| 77 | 
            +
                }
         | 
| 37 78 | 
             
              end
         | 
| 38 79 |  | 
| 39 80 | 
             
              def delete_tmp_files_for_this_test
         | 
| @@ -49,15 +90,15 @@ module Reportir | |
| 49 90 |  | 
| 50 91 | 
             
              def write_javascript_models
         | 
| 51 92 | 
             
                string = %{
         | 
| 52 | 
            -
                  var navigation = #{array_of_test_names.to_json} | 
| 53 | 
            -
                  var tests = #{@@tests.to_json} | 
| 93 | 
            +
                  var navigation = #{array_of_test_names.to_json};
         | 
| 94 | 
            +
                  var tests = #{@@tests.to_json};
         | 
| 54 95 | 
             
                }
         | 
| 55 96 | 
             
                File.open(local_model_file_path, "w") { |f| f.write(string) }
         | 
| 56 97 | 
             
              end
         | 
| 57 98 |  | 
| 58 99 | 
             
              def clear_previous_results_from_s3
         | 
| 59 100 | 
             
                puts "deleting all previous test data from s3"
         | 
| 60 | 
            -
                ::Aws::S3::Bucket.new( | 
| 101 | 
            +
                ::Aws::S3::Bucket.new(aws_config[:bucket]).delete_objects({
         | 
| 61 102 | 
             
                  delete: {
         | 
| 62 103 | 
             
                    objects: [{ key: "#{public_path_for_this_test}" }],
         | 
| 63 104 | 
             
                    quiet: true
         | 
| @@ -66,42 +107,26 @@ module Reportir | |
| 66 107 | 
             
              end
         | 
| 67 108 |  | 
| 68 109 | 
             
              def upload_to_s3
         | 
| 69 | 
            -
                puts ''
         | 
| 70 | 
            -
                puts ''
         | 
| 71 110 | 
             
                puts '====== UPLOADING RESULTS ========='
         | 
| 72 111 | 
             
                bucket.object('js/models.js').upload_file(local_model_file_path)
         | 
| 73 112 | 
             
                puts "Uploading #{local_model_file_path} to /js/models.js"
         | 
| 74 113 | 
             
                upload_directory(local_test_root, public_path_for_this_test)
         | 
| 75 | 
            -
                puts ''
         | 
| 76 | 
            -
                puts ''
         | 
| 77 114 | 
             
                puts '====== S3 UPLOAD COMPLETE ========='
         | 
| 78 115 | 
             
                puts 'URL: ' + static_site_url
         | 
| 79 116 | 
             
                puts '==================================='
         | 
| 80 | 
            -
                puts ''
         | 
| 81 | 
            -
                puts ''
         | 
| 82 | 
            -
              end
         | 
| 83 | 
            -
             | 
| 84 | 
            -
              def s3_screenshot(method)
         | 
| 85 | 
            -
                create_current_test  #TODO: before-filter??
         | 
| 86 | 
            -
                @@step = @@step+=1
         | 
| 87 | 
            -
                image_name = "#{@@step}-#{method}" 
         | 
| 88 | 
            -
                local_path = "#{local_test_root}/#{image_name}.png"
         | 
| 89 | 
            -
                FileUtils.mkdir_p(local_test_root) unless Dir.exists?(local_test_root)
         | 
| 90 | 
            -
                @browser.screenshot.save(local_path)
         | 
| 91 | 
            -
                current_test[:screenshots] << { name: image_name, src: "#{public_path_for_this_test}/#{image_name}.png" }
         | 
| 92 117 | 
             
              end
         | 
| 93 118 |  | 
| 94 119 | 
             
              def bucket
         | 
| 95 | 
            -
                @bucket ||= ::Aws::S3::Resource.new.bucket( | 
| 120 | 
            +
                @bucket ||= ::Aws::S3::Resource.new.bucket(aws_config[:bucket])
         | 
| 96 121 | 
             
              end
         | 
| 97 122 |  | 
| 98 123 | 
             
              def upload_directory(local, remote)
         | 
| 99 | 
            -
                ::S3Uploader.upload_directory(local,  | 
| 124 | 
            +
                ::S3Uploader.upload_directory(local, aws_config[:bucket], { 
         | 
| 100 125 | 
             
                  :destination_dir => remote, 
         | 
| 101 126 | 
             
                  :threads => 5, 
         | 
| 102 | 
            -
                  s3_key:  | 
| 103 | 
            -
                  s3_secret:  | 
| 104 | 
            -
                  region:  | 
| 127 | 
            +
                  s3_key: aws_config[:key], 
         | 
| 128 | 
            +
                  s3_secret: aws_config[:secret], 
         | 
| 129 | 
            +
                  region: aws_config[:region] })
         | 
| 105 130 | 
             
              end
         | 
| 106 131 |  | 
| 107 132 | 
             
              def static_site_template_path
         | 
| @@ -123,7 +148,7 @@ module Reportir | |
| 123 148 | 
             
              end
         | 
| 124 149 |  | 
| 125 150 | 
             
              def local_model_file_path
         | 
| 126 | 
            -
                "#{local_root}/models.js"
         | 
| 151 | 
            +
                "#{local_root}/js/models.js"
         | 
| 127 152 | 
             
              end
         | 
| 128 153 |  | 
| 129 154 | 
             
              def local_test_root
         | 
| @@ -148,7 +173,7 @@ module Reportir | |
| 148 173 |  | 
| 149 174 | 
             
              def static_site_url
         | 
| 150 175 | 
             
                # TODO: use aws-sdk for this.
         | 
| 151 | 
            -
                "http://#{ | 
| 176 | 
            +
                "http://#{aws_config[:bucket]}.s3-website-#{aws_config[:region]}.amazonaws.com"
         | 
| 152 177 | 
             
              end
         | 
| 153 178 |  | 
| 154 179 | 
             
              class Error < ::StandardError; end
         | 
    
        data/lib/reportir/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: reportir
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.3. | 
| 4 | 
            +
              version: 0.3.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Dean Shelton
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015-08- | 
| 11 | 
            +
            date: 2015-08-11 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         |