brighter_planet_metadata 0.0.16 → 0.1.1

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.
data/Gemfile CHANGED
@@ -1,4 +1,8 @@
1
- source "http://rubygems.org"
1
+ source :rubygems
2
2
 
3
- # Specify your gem's dependencies in brighter_planet_metadata.gemspec
4
3
  gemspec
4
+
5
+ # development dependencies
6
+ gem 'webmock'
7
+ gem 'test-unit'
8
+ gem 'rake'
data/Rakefile CHANGED
@@ -10,16 +10,3 @@ Rake::TestTask.new(:test) do |test|
10
10
  end
11
11
 
12
12
  task :default => :test
13
-
14
- begin
15
- require 'rake/rdoctask'
16
- Rake::RDocTask.new do |rdoc|
17
- rdoc.rdoc_dir = 'rdoc'
18
- rdoc.title = 'remote_table'
19
- rdoc.options << '--line-numbers' << '--inline-source'
20
- rdoc.rdoc_files.include('README*')
21
- rdoc.rdoc_files.include('lib/**/*.rb')
22
- end
23
- rescue LoadError
24
- puts "Rdoc is not available"
25
- end
@@ -5,7 +5,6 @@ require "brighter_planet_metadata/version"
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "brighter_planet_metadata"
7
7
  s.version = BrighterPlanetMetadata::VERSION
8
- s.platform = Gem::Platform::RUBY
9
8
  s.authors = ["Seamus Abshere", "Andy Rossmeissl"]
10
9
  s.email = ["seamus@abshere.net"]
11
10
  s.homepage = "https://github.com/brighterplanet/brighter_planet_metadata"
@@ -18,17 +17,8 @@ Gem::Specification.new do |s|
18
17
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
19
  s.require_paths = ["lib"]
21
- s.add_dependency 'eat'
22
20
  s.add_dependency 'activesupport', '>=2.3.4'
23
21
  s.add_dependency 'i18n' # activesupport?
24
22
  s.add_dependency 'cache_method'
25
- s.add_development_dependency 'brighter_planet_deploy'
26
- s.add_development_dependency 'fakeweb'
27
- s.add_development_dependency 'test-unit'
28
- s.add_development_dependency 'fakefs'
29
- s.add_development_dependency 'earth'
30
- s.add_development_dependency 'rake'
31
- unless RUBY_VERSION > '1.9'
32
- s.add_development_dependency 'fastercsv' # earth
33
- end
23
+ s.add_dependency 'multi_json'
34
24
  end
@@ -1,14 +1,13 @@
1
1
  require 'singleton'
2
- require 'eat'
2
+ require 'uri'
3
+ require 'net/http'
4
+ require 'multi_json'
3
5
  require 'active_support'
4
6
  require 'active_support/version'
5
- %w{
6
- active_support/json
7
- active_support/core_ext/object/blank
8
- active_support/inflector/inflections
9
- }.each do |active_support_3_requirement|
10
- require active_support_3_requirement
11
- end if ::ActiveSupport::VERSION::MAJOR == 3
7
+ if ::ActiveSupport::VERSION::MAJOR >= 3
8
+ require 'active_support/core_ext'
9
+ require 'active_support/inflector/inflections'
10
+ end
12
11
 
13
12
  ::ActiveSupport::Inflector.inflections do |inflect|
14
13
  inflect.uncountable %w{ aircraft bts_aircraft }
@@ -23,10 +22,10 @@ module BrighterPlanet
23
22
  include ::Singleton
24
23
  LIVE_URL = {
25
24
  'datasets' => 'http://data.brighterplanet.com/datasets.json',
26
- 'emitters' => 'http://carbon.brighterplanet.com/emitters.json',
27
- 'certified_emitters' => 'http://certified.carbon.brighterplanet.com/emitters.json',
25
+ 'emitters' => 'http://impact.brighterplanet.com/emitters.json',
26
+ 'certified_emitters' => 'http://certified.impact.brighterplanet.com/emitters.json',
28
27
  'resources' => 'http://data.brighterplanet.com/resources.json',
29
- 'protocols' => 'http://carbon.brighterplanet.com/protocols.json',
28
+ 'protocols' => 'http://impact.brighterplanet.com/protocols.json',
30
29
  }.freeze
31
30
 
32
31
  # sabshere 2/4/11 obv these have to be updated with some regularity
@@ -66,56 +65,29 @@ module BrighterPlanet
66
65
  # Clear out any cached values
67
66
  def refresh
68
67
  # instance_variables.each { |ivar_name| instance_variable_set ivar_name, nil }
69
- clear_method_cache :authoritative_value_or_fallback
68
+ cache_method_clear :authoritative_value_or_fallback
70
69
  end
71
70
 
72
71
  # for cache_method
73
- HASH = 'BrighterPlanet::Metadata.instance'.hash
74
- def method_cache_hash
75
- HASH
72
+ def as_cache_key
73
+ 'BrighterPlanet::Metadata.instance'
76
74
  end
77
75
 
78
76
  private
79
-
80
- autoload :Cm1Authority, 'brighter_planet_metadata/cm1_authority'
81
- def cm1_authority
82
- Cm1Authority.instance
83
- end
84
-
85
- autoload :Data1Authority, 'brighter_planet_metadata/data1_authority'
86
- def data1_authority
87
- Data1Authority.instance
88
- end
89
-
90
- def authorities
91
- [ cm1_authority, data1_authority ]
92
- end
93
-
77
+
94
78
  def deep_copy_of_authoritative_value_or_fallback(k)
95
- v = authoritative_value_or_fallback k
96
- case v
97
- when ::Hash
98
- ::Hash[(v.map { |k, vv| [ k.to_s.dup, vv.to_s.dup] })]
99
- when ::Array
100
- v.map { |vv| vv.to_s.dup }
101
- when ::String, ::Symbol
102
- v.to_s.dup
103
- else
104
- raise "i only handle arrays of strings, hashes of strings, and strings"
105
- end
79
+ authoritative_value_or_fallback(k).clone
106
80
  end
107
81
 
108
82
  # Used internally to pull a live list of emitters/datasets/etc. or fall back to a static one.
109
83
  def authoritative_value_or_fallback(k)
110
84
  k = k.to_s
111
- if (authority = authorities.detect { |a| a.authority? k })
112
- authority.send k
113
- elsif ::ENV['BRIGHTER_PLANET_METADATA_FALLBACKS_ONLY'] == 'true'
85
+ if ::ENV['BRIGHTER_PLANET_METADATA_FALLBACKS_ONLY'] == 'true'
114
86
  $stderr.puts %{ENV['BRIGHTER_PLANET_METADATA_FALLBACKS_ONLY'] == 'true', so using fallback value for '#{k}'}
115
87
  FALLBACK[k]
116
88
  else
117
89
  begin
118
- hsh = ::ActiveSupport::JSON.decode eat(LIVE_URL[k])
90
+ hsh = ::MultiJson.decode ::Net::HTTP.get(::URI.parse(LIVE_URL[k]))
119
91
  kk = (k == 'certified_emitters') ? 'emitters' : k # the live certified response will contain an 'emitters' key
120
92
  raise unless hsh.has_key? kk
121
93
  hsh[kk]
@@ -1,3 +1,3 @@
1
1
  module BrighterPlanetMetadata
2
- VERSION = "0.0.16"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -1,7 +1,7 @@
1
1
  require 'cache_method'
2
+ require 'brighter_planet_metadata/metadata'
2
3
 
3
4
  module BrighterPlanet
4
- autoload :Metadata, 'brighter_planet_metadata/metadata'
5
5
  def self.metadata
6
6
  Metadata.instance
7
7
  end
data/test/helper.rb CHANGED
@@ -2,44 +2,21 @@ require 'rubygems'
2
2
  require 'bundler'
3
3
  Bundler.setup
4
4
  require 'test/unit'
5
- require 'fakeweb'
6
- require 'fakefs/safe'
5
+ require 'webmock/test_unit'
7
6
  require 'fileutils'
8
- require 'active_support/string_inquirer'
9
7
  $LOAD_PATH.unshift(File.dirname(__FILE__))
10
8
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
11
9
  require 'brighter_planet_metadata'
10
+
12
11
  class Test::Unit::TestCase
13
12
  def setup
14
13
  BrighterPlanet.metadata.refresh
15
- FakeWeb.clean_registry
16
- FakeWeb.allow_net_connect = false
17
- Rails.application.certified = false
18
- Rails.root = '/var/www/myapp'
19
- Rails.env = ActiveSupport::StringInquirer.new 'development'
14
+ WebMock.enable!
15
+ WebMock.disable_net_connect!
20
16
  end
21
17
  def teardown
22
- FakeFS::FileSystem.clear
23
- FakeFS.deactivate!
24
- FakeWeb.allow_net_connect = true
25
- Rails.application.certified = false
26
- Rails.root = nil
27
- end
28
- end
29
-
30
- require 'singleton'
31
- require 'active_support/core_ext/module'
32
- module Rails
33
- mattr_accessor :root, :env
34
- def self.application
35
- FakeApplication.instance
36
- end
37
- class FakeApplication
38
- include ::Singleton
39
- attr_writer :certified
40
- def certified?
41
- @certified == true
42
- end
18
+ WebMock.reset!
19
+ WebMock.disable!
43
20
  end
44
21
  end
45
22
 
@@ -3,19 +3,14 @@ require 'helper'
3
3
  class TestFallback < Test::Unit::TestCase
4
4
  def setup
5
5
  super
6
- FakeWeb.clean_registry
7
- FakeWeb.allow_net_connect = false
8
6
  [
9
7
  'http://data.brighterplanet.com/datasets.json',
10
- 'http://carbon.brighterplanet.com/emitters.json',
11
- 'http://certified.carbon.brighterplanet.com/emitters.json',
8
+ 'http://impact.brighterplanet.com/emitters.json',
9
+ 'http://certified.impact.brighterplanet.com/emitters.json',
12
10
  'http://data.brighterplanet.com/resources.json',
13
- 'http://carbon.brighterplanet.com/protocols.json',
11
+ 'http://impact.brighterplanet.com/protocols.json',
14
12
  ].each do |url|
15
- FakeWeb.register_uri :get,
16
- url,
17
- :status => ["500", "Urg"],
18
- :body => nil
13
+ WebMock.stub_request(:get, url).to_return(:status => 500)
19
14
  end
20
15
  end
21
16
 
@@ -1,29 +1,22 @@
1
1
  require 'helper'
2
2
 
3
- require 'active_support/json/encoding'
4
-
5
3
  class TestLiveRemote < Test::Unit::TestCase
6
4
  def setup
7
5
  super
8
- FakeWeb.clean_registry
9
- FakeWeb.allow_net_connect = false
10
6
  {
11
7
  'http://data.brighterplanet.com/datasets.json' => { 'datasets' => %w{ LiveRemoteDataset } },
12
- 'http://carbon.brighterplanet.com/emitters.json' => { 'emitters' => %w{ LiveRemoteEmitter } },
13
- 'http://certified.carbon.brighterplanet.com/emitters.json' => { 'emitters' => %w{ LiveRemoteCertifiedEmitter } },
8
+ 'http://impact.brighterplanet.com/emitters.json' => { 'emitters' => %w{ LiveRemoteEmitter } },
9
+ 'http://certified.impact.brighterplanet.com/emitters.json' => { 'emitters' => %w{ LiveRemoteCertifiedEmitter } },
14
10
  'http://data.brighterplanet.com/resources.json' => { 'resources' => %w{ LiveRemoteResource } },
15
- 'http://carbon.brighterplanet.com/protocols.json' => { 'protocols' => { 'fooprotocol' => 'Foo Protocol' } },
11
+ 'http://impact.brighterplanet.com/protocols.json' => { 'protocols' => { 'fooprotocol' => 'Foo Protocol' } },
16
12
  }.each do |url, hsh|
17
- FakeWeb.register_uri :get,
18
- url,
19
- :status => ["200", "OK"],
20
- :body => hsh.to_json
13
+ WebMock.stub_request(:get, url).to_return(:status => 200, :body => MultiJson.encode(hsh))
21
14
  end
22
15
  end
23
16
 
24
17
  def test_refresh
25
18
  assert ::BrighterPlanet.metadata.emitters.include?('LiveRemoteEmitter')
26
- FakeWeb.register_uri :get, 'http://carbon.brighterplanet.com/emitters.json', :status => ["200", "OK"], :body => { 'emitters' => %w{LiveRemoteRefreshedEmitter}}.to_json
19
+ WebMock.stub_request(:get, 'http://impact.brighterplanet.com/emitters.json').to_return(:status => 200, :body => MultiJson.encode({ 'emitters' => %w{LiveRemoteRefreshedEmitter}}))
27
20
 
28
21
  # still the old value because it's cached...
29
22
  assert ::BrighterPlanet.metadata.emitters.include?('LiveRemoteEmitter')
@@ -3,9 +3,7 @@ require 'helper'
3
3
  class TestMemoryLeak < Test::Unit::TestCase
4
4
  def setup
5
5
  super
6
- FakeWeb.clean_registry
7
- FakeWeb.allow_net_connect = false
8
- FakeWeb.register_uri :get, 'http://carbon.brighterplanet.com/emitters.json', :status => ["500", "Urg"], :body => nil
6
+ WebMock.stub_request(:get, 'http://impact.brighterplanet.com/emitters.json').to_return(:status => 500)
9
7
  end
10
8
 
11
9
  def test_attack_array
data/test/test_real.rb CHANGED
@@ -2,10 +2,8 @@ require 'helper'
2
2
 
3
3
  class TestReal < Test::Unit::TestCase
4
4
  def setup
5
- super
5
+ WebMock.disable!
6
6
  BrighterPlanet.metadata.refresh
7
- FakeWeb.clean_registry
8
- FakeWeb.allow_net_connect = true
9
7
  $old_fallback = BrighterPlanet::Metadata::FALLBACK
10
8
  silence_warnings { BrighterPlanet::Metadata.const_set 'FALLBACK', Hash.new([]) }
11
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brighter_planet_metadata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.16
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,22 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-10-21 00:00:00.000000000Z
13
+ date: 2012-03-08 00:00:00.000000000 Z
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: eat
17
- requirement: &2155032520 !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: *2155032520
26
15
  - !ruby/object:Gem::Dependency
27
16
  name: activesupport
28
- requirement: &2155031760 !ruby/object:Gem::Requirement
17
+ requirement: &2169290140 !ruby/object:Gem::Requirement
29
18
  none: false
30
19
  requirements:
31
20
  - - ! '>='
@@ -33,10 +22,10 @@ dependencies:
33
22
  version: 2.3.4
34
23
  type: :runtime
35
24
  prerelease: false
36
- version_requirements: *2155031760
25
+ version_requirements: *2169290140
37
26
  - !ruby/object:Gem::Dependency
38
27
  name: i18n
39
- requirement: &2155031100 !ruby/object:Gem::Requirement
28
+ requirement: &2169289720 !ruby/object:Gem::Requirement
40
29
  none: false
41
30
  requirements:
42
31
  - - ! '>='
@@ -44,10 +33,10 @@ dependencies:
44
33
  version: '0'
45
34
  type: :runtime
46
35
  prerelease: false
47
- version_requirements: *2155031100
36
+ version_requirements: *2169289720
48
37
  - !ruby/object:Gem::Dependency
49
38
  name: cache_method
50
- requirement: &2155030640 !ruby/object:Gem::Requirement
39
+ requirement: &2169289260 !ruby/object:Gem::Requirement
51
40
  none: false
52
41
  requirements:
53
42
  - - ! '>='
@@ -55,73 +44,18 @@ dependencies:
55
44
  version: '0'
56
45
  type: :runtime
57
46
  prerelease: false
58
- version_requirements: *2155030640
59
- - !ruby/object:Gem::Dependency
60
- name: brighter_planet_deploy
61
- requirement: &2155030140 !ruby/object:Gem::Requirement
62
- none: false
63
- requirements:
64
- - - ! '>='
65
- - !ruby/object:Gem::Version
66
- version: '0'
67
- type: :development
68
- prerelease: false
69
- version_requirements: *2155030140
70
- - !ruby/object:Gem::Dependency
71
- name: fakeweb
72
- requirement: &2155029500 !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- type: :development
79
- prerelease: false
80
- version_requirements: *2155029500
47
+ version_requirements: *2169289260
81
48
  - !ruby/object:Gem::Dependency
82
- name: test-unit
83
- requirement: &2155028640 !ruby/object:Gem::Requirement
49
+ name: multi_json
50
+ requirement: &2169288800 !ruby/object:Gem::Requirement
84
51
  none: false
85
52
  requirements:
86
53
  - - ! '>='
87
54
  - !ruby/object:Gem::Version
88
55
  version: '0'
89
- type: :development
90
- prerelease: false
91
- version_requirements: *2155028640
92
- - !ruby/object:Gem::Dependency
93
- name: fakefs
94
- requirement: &2155023600 !ruby/object:Gem::Requirement
95
- none: false
96
- requirements:
97
- - - ! '>='
98
- - !ruby/object:Gem::Version
99
- version: '0'
100
- type: :development
101
- prerelease: false
102
- version_requirements: *2155023600
103
- - !ruby/object:Gem::Dependency
104
- name: earth
105
- requirement: &2155022580 !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- type: :development
112
- prerelease: false
113
- version_requirements: *2155022580
114
- - !ruby/object:Gem::Dependency
115
- name: rake
116
- requirement: &2155021260 !ruby/object:Gem::Requirement
117
- none: false
118
- requirements:
119
- - - ! '>='
120
- - !ruby/object:Gem::Version
121
- version: '0'
122
- type: :development
56
+ type: :runtime
123
57
  prerelease: false
124
- version_requirements: *2155021260
58
+ version_requirements: *2169288800
125
59
  description: What emitters (carbon models), resources (data classes), datasets, etc.
126
60
  we offer.
127
61
  email:
@@ -138,14 +72,10 @@ files:
138
72
  - bin/brighter_planet_metadata
139
73
  - brighter_planet_metadata.gemspec
140
74
  - lib/brighter_planet_metadata.rb
141
- - lib/brighter_planet_metadata/cm1_authority.rb
142
- - lib/brighter_planet_metadata/data1_authority.rb
143
75
  - lib/brighter_planet_metadata/metadata.rb
144
76
  - lib/brighter_planet_metadata/version.rb
145
77
  - test/helper.rb
146
78
  - test/test_fallback.rb
147
- - test/test_live_cm1.rb
148
- - test/test_live_data1.rb
149
79
  - test/test_live_remote.rb
150
80
  - test/test_memory_leak.rb
151
81
  - test/test_real.rb
@@ -169,15 +99,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
99
  version: '0'
170
100
  requirements: []
171
101
  rubyforge_project: brighter_planet_metadata
172
- rubygems_version: 1.8.10
102
+ rubygems_version: 1.8.15
173
103
  signing_key:
174
104
  specification_version: 3
175
105
  summary: Names of Brighter Planet things
176
106
  test_files:
177
107
  - test/helper.rb
178
108
  - test/test_fallback.rb
179
- - test/test_live_cm1.rb
180
- - test/test_live_data1.rb
181
109
  - test/test_live_remote.rb
182
110
  - test/test_memory_leak.rb
183
111
  - test/test_real.rb
112
+ has_rdoc:
@@ -1,40 +0,0 @@
1
- require 'singleton'
2
- module BrighterPlanet
3
- class Metadata
4
- class Cm1Authority
5
- include ::Singleton
6
- def authority?(method_id)
7
- return unless defined?(::Rails) and ::Rails.env.production? and brighter_planet_server?
8
- method_id = method_id.to_s
9
- if method_id == 'certified_emitters'
10
- ::Rails.application.certified?
11
- else
12
- respond_to? method_id
13
- end
14
- end
15
- def emitters
16
- ary = []
17
- ::ObjectSpace.each_object(::BrighterPlanet::Emitter) do |obj|
18
- ary.push obj.name.demodulize
19
- end
20
- ary
21
- end
22
- def certified_emitters
23
- emitters
24
- end
25
- def protocols
26
- emitters.map(&:constantize).map(&:protocols).flatten.uniq.inject({}) do |memo, p|
27
- memo[p] = ::File.read(::File.join(::Rails.root, 'app', 'views', 'protocols', 'names', "_#{p}.html.erb")).strip
28
- memo
29
- end
30
- end
31
- private
32
- def brighter_planet_server?
33
- require 'brighter_planet_deploy'
34
- ::BrighterPlanet.deploy.servers.me.service == 'Cm1'
35
- rescue ::Exception
36
- false
37
- end
38
- end
39
- end
40
- end
@@ -1,25 +0,0 @@
1
- require 'singleton'
2
- module BrighterPlanet
3
- class Metadata
4
- class Data1Authority
5
- include ::Singleton
6
- def authority?(method_id)
7
- return unless defined?(::Rails) and ::Rails.env.production? and brighter_planet_server?
8
- respond_to? method_id
9
- end
10
- def resources
11
- ::Earth.resources.sort
12
- end
13
- def datasets
14
- ::Dir[::File.expand_path(::File.join(::Rails.root, 'app', 'models', '**', '*.rb'))].select { |f| ::File.read(f) =~ /class [\:A-Za-z0-9]+ < Dataset/ }.map { |path| ::File.basename(path, '.rb').camelcase }.sort
15
- end
16
- private
17
- def brighter_planet_server?
18
- require 'brighter_planet_deploy'
19
- ::BrighterPlanet.deploy.servers.me.service == 'Data1'
20
- rescue ::Exception
21
- false
22
- end
23
- end
24
- end
25
- end
@@ -1,60 +0,0 @@
1
- require 'helper'
2
-
3
- module BrighterPlanet
4
- module Emitter
5
- end
6
- module LiveCm1Emitter
7
- extend BrighterPlanet::Emitter
8
- end
9
- end
10
-
11
- class TestLiveCm1 < Test::Unit::TestCase
12
- def setup
13
- super
14
- FakeFS.activate!
15
- Rails.env = ActiveSupport::StringInquirer.new 'production'
16
- Rails.root = '/data/edge/current'
17
- FileUtils.mkdir_p '/data/edge/current/config/brighter_planet_deploy'
18
- FileUtils.mkdir_p '/data/edge/current/public/brighter_planet_deploy'
19
- File.open('/data/edge/current/config/brighter_planet_deploy/service', 'w') { |f| f.write 'Cm1' }
20
- end
21
-
22
- def test_self_awareness
23
- assert ::Rails.env.production?
24
- assert_equal 'Cm1', ::BrighterPlanet.deploy.servers.me.service
25
- end
26
-
27
- def test_authority
28
- assert ::BrighterPlanet::Metadata::Cm1Authority.instance.authority?('emitters')
29
-
30
- # you don't have authority to say what's certified...
31
- assert !::BrighterPlanet::Metadata::Cm1Authority.instance.authority?('certified_emitters')
32
-
33
- # now you do
34
- Rails.application.certified = true
35
- assert ::BrighterPlanet::Metadata::Cm1Authority.instance.authority?('certified_emitters')
36
- ensure
37
- Rails.application.certified = false
38
- end
39
-
40
- def test_emitters
41
- assert_equal %w{LiveCm1Emitter}, ::BrighterPlanet.metadata.emitters
42
- end
43
-
44
- def test_what_must_come_from_other_sources
45
- assert_equal ::BrighterPlanet::Metadata::FALLBACK['resources'], ::BrighterPlanet.metadata.resources
46
- end
47
-
48
- # note: you still get a list of certified emitters! the point is that you, as the edge server, don't decide which ones they are
49
- # in other words, nothing is ever certified unless Rails.application.certified?
50
- def test_certified_emitters_as_if_on_edge
51
- assert_equal ::BrighterPlanet::Metadata::FALLBACK['certified_emitters'], ::BrighterPlanet.metadata.certified_emitters
52
- end
53
-
54
- def test_certified_emitters_as_if_on_certified
55
- Rails.application.certified = true
56
- assert_equal %w{LiveCm1Emitter}, ::BrighterPlanet.metadata.certified_emitters
57
- ensure
58
- Rails.application.certified = false
59
- end
60
- end
@@ -1,72 +0,0 @@
1
- require 'helper'
2
- require 'earth'
3
-
4
- class FakeEarth
5
- def self.resources
6
- [ 'LiveData1Resource' ]
7
- end
8
- end
9
-
10
- class TestLiveData1 < Test::Unit::TestCase
11
- def setup
12
- super
13
- FakeFS.activate!
14
-
15
- # faking resources
16
- eval %{
17
- ::OldEarth = ::Earth
18
- ::Earth = ::FakeEarth
19
- }
20
-
21
- # faking deploy
22
- Rails.env = ActiveSupport::StringInquirer.new 'production'
23
- Rails.root = '/var/www/data1/current'
24
- FileUtils.mkdir_p '/var/www/data1/current/config/brighter_planet_deploy'
25
- FileUtils.mkdir_p '/var/www/data1/current/public/brighter_planet_deploy'
26
- File.open('/var/www/data1/current/config/brighter_planet_deploy/service', 'w') { |f| f.write 'Data1' }
27
-
28
- # FAKING DATASETS
29
- eval "class ::Dataset; end"
30
- fake_dataset_path = File.join ::Rails.root, 'app', 'models', 'live_data1_dataset.rb'
31
- FileUtils.mkdir_p File.dirname(fake_dataset_path)
32
- File.open(fake_dataset_path, 'w') { |f| f.write "class ::LiveData1Dataset < Dataset; end"}
33
- eval File.read(fake_dataset_path) unless defined?(::LiveData1Dataset)
34
- end
35
-
36
- def teardown
37
- super
38
- eval %{
39
- ::Earth = ::OldEarth
40
- }
41
- end
42
-
43
- def test_self_awareness
44
- assert ::Rails.env.production?
45
- assert_equal 'Data1', ::BrighterPlanet.deploy.servers.me.service
46
- end
47
-
48
- def test_authority
49
- assert ::BrighterPlanet.metadata.send(:data1_authority).authority?('resources')
50
- end
51
-
52
- def test_resources
53
- assert_equal %w{LiveData1Resource}, ::BrighterPlanet.metadata.resources
54
- end
55
-
56
- def test_datasets
57
- assert_equal %w{LiveData1Dataset}, ::BrighterPlanet.metadata.datasets
58
- end
59
-
60
- def test_what_must_come_from_other_sources
61
- assert_equal ::BrighterPlanet::Metadata::FALLBACK['emitters'], ::BrighterPlanet.metadata.emitters
62
- end
63
-
64
- def test_inflection
65
- assert_equal 'GreenhouseGases', 'GreenhouseGas'.pluralize
66
- assert_equal 'greenhouse_gases', 'greenhouse_gas'.pluralize
67
- assert_equal 'GreenhouseGas', 'GreenhouseGases'.singularize
68
- assert_equal 'Aircraft', 'Aircraft'.pluralize
69
- assert_equal 'aircraft', 'aircraft'.pluralize
70
- assert_equal 'Aircraft', 'Aircraft'.singularize
71
- end
72
- end