tesla-api 0.0.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.
@@ -0,0 +1,52 @@
1
+ require 'helper'
2
+
3
+ class ClimateStateTest < Test::Unit::TestCase
4
+ USER = "user@example.com"
5
+ PASSWORD = "password"
6
+ RECORD_MODE = :new_episodes
7
+
8
+ def climate_state
9
+ @charge_state ||= begin
10
+ VCR.use_cassette('climate_state', :record => RECORD_MODE) do
11
+ TeslaAPI::Connection.new(USER, PASSWORD).vehicle.climate_state
12
+ end
13
+ end
14
+ end
15
+
16
+ def test_inside_temp_celcius
17
+ assert_equal nil, climate_state.inside_temp_celcius
18
+ end
19
+
20
+ def test_outside_temp_celcius
21
+ assert_equal nil, climate_state.outside_temp_celcius
22
+ end
23
+
24
+ def test_driver_temp_setting_celcius
25
+ assert_equal 23.1, climate_state.driver_temp_setting_celcius
26
+ end
27
+
28
+ def test_passenger_temp_setting_celcius
29
+ assert_equal 23.1, climate_state.passenger_temp_setting_celcius
30
+ end
31
+
32
+ def test_fan_speed
33
+ assert_equal nil, climate_state.fan_speed
34
+ end
35
+
36
+ def test_auto_conditioning_on
37
+ assert !climate_state.auto_conditioning_on?
38
+ end
39
+
40
+ def test_front_defroster_on
41
+ assert !climate_state.front_defroster_on?
42
+ end
43
+
44
+ def test_rear_defroster_on
45
+ assert !climate_state.rear_defroster_on?
46
+ end
47
+
48
+ def test_fan_on
49
+ assert !climate_state.fan_on?
50
+ end
51
+ end
52
+
@@ -0,0 +1,32 @@
1
+ require 'helper'
2
+
3
+ class ConnectionTest < Test::Unit::TestCase
4
+ USER = "user@example.com"
5
+ PASSWORD = "password"
6
+ RECORD_MODE = :new_episodes
7
+
8
+ def test_vehicles
9
+ VCR.use_cassette('connection', :record => RECORD_MODE) do
10
+ connection = TeslaAPI::Connection.new(USER, PASSWORD)
11
+
12
+ assert connection.vehicles.size > 0
13
+ end
14
+ end
15
+
16
+ def test_vehicle
17
+ VCR.use_cassette('connection', :record => RECORD_MODE) do
18
+ connection = TeslaAPI::Connection.new(USER, PASSWORD)
19
+
20
+ assert connection.vehicle
21
+ end
22
+ end
23
+
24
+ def test_logged_in
25
+ VCR.use_cassette('connection', :record => RECORD_MODE) do
26
+ connection = TeslaAPI::Connection.new(USER, PASSWORD)
27
+
28
+ assert connection.logged_in?
29
+ end
30
+ end
31
+ end
32
+
@@ -0,0 +1,36 @@
1
+ require 'helper'
2
+
3
+ class DriveStateTest < Test::Unit::TestCase
4
+ USER = "user@example.com"
5
+ PASSWORD = "password"
6
+ RECORD_MODE = :new_episodes
7
+
8
+ def drive_state
9
+ @drive_state ||= begin
10
+ VCR.use_cassette('drive_state', :record => RECORD_MODE) do
11
+ TeslaAPI::Connection.new(USER, PASSWORD).vehicle.drive_state
12
+ end
13
+ end
14
+ end
15
+
16
+ def test_shift_state
17
+ assert_equal nil, drive_state.shift_state
18
+ end
19
+
20
+ def test_speed
21
+ assert_equal nil, drive_state.speed
22
+ end
23
+
24
+ def test_latitude
25
+ assert_equal 17.82365, drive_state.latitude
26
+ end
27
+
28
+ def test_longitude
29
+ assert_equal -72.752896, drive_state.longitude
30
+ end
31
+
32
+ def test_heading
33
+ assert_equal 180, drive_state.heading
34
+ end
35
+ end
36
+
@@ -0,0 +1,36 @@
1
+ require 'helper'
2
+
3
+ class GuiSettingsTest < Test::Unit::TestCase
4
+ USER = "user@example.com"
5
+ PASSWORD = "password"
6
+ RECORD_MODE = :new_episodes
7
+
8
+ def gui_settings
9
+ @gui_settings ||= begin
10
+ VCR.use_cassette('gui_settings', :record => RECORD_MODE) do
11
+ TeslaAPI::Connection.new(USER, PASSWORD).vehicle.gui_settings
12
+ end
13
+ end
14
+ end
15
+
16
+ def test_gui_range_display
17
+ assert_equal "Rated", gui_settings.gui_range_display
18
+ end
19
+
20
+ def test_gui_charge_rate_units
21
+ assert_equal "kW", gui_settings.gui_charge_rate_units
22
+ end
23
+
24
+ def test_gui_temperature_units
25
+ assert_equal "F", gui_settings.gui_temperature_units
26
+ end
27
+
28
+ def test_gui_distance_units
29
+ assert_equal "mi/hr", gui_settings.gui_distance_units
30
+ end
31
+
32
+ def test_gui_24_hour_time
33
+ assert !gui_settings.gui_24_hour_time?
34
+ end
35
+ end
36
+
@@ -0,0 +1,32 @@
1
+ require 'helper'
2
+
3
+ class VehicleTest < Test::Unit::TestCase
4
+ USER = "user@example.com"
5
+ PASSWORD = "password"
6
+ RECORD_MODE = :new_episodes
7
+
8
+ def vehicle
9
+ @vehicle ||= begin
10
+ VCR.use_cassette('vehicle', :record => RECORD_MODE) do
11
+ TeslaAPI::Connection.new(USER, PASSWORD).vehicle
12
+ end
13
+ end
14
+ end
15
+
16
+ def test_vin
17
+ assert_equal "5YJSA", vehicle.vin
18
+ end
19
+
20
+ def test_online_state
21
+ assert_equal "online", vehicle.online_state
22
+ end
23
+
24
+ def test_option_codes
25
+ assert_equal ["MS01","RENA"], vehicle.option_codes
26
+ end
27
+
28
+ def test_option_code_descriptions
29
+ assert_equal "base, region_us", vehicle.option_code_descriptions
30
+ end
31
+ end
32
+
@@ -0,0 +1,80 @@
1
+ require 'helper'
2
+
3
+ class VehicleStateTest < Test::Unit::TestCase
4
+ USER = "user@example.com"
5
+ PASSWORD = "password"
6
+ RECORD_MODE = :new_episodes
7
+
8
+ def vehicle_state
9
+ @vehicle_state ||= begin
10
+ VCR.use_cassette('vehicle_state', :record => RECORD_MODE) do
11
+ TeslaAPI::Connection.new(USER, PASSWORD).vehicle.state
12
+ end
13
+ end
14
+ end
15
+
16
+ def test_firmware_version
17
+ assert_equal "1.19.42", vehicle_state.firmware_version
18
+ end
19
+
20
+ def test_nineteen_inch_wheels
21
+ assert vehicle_state.nineteen_inch_wheels?
22
+ end
23
+
24
+ def test_panoramic
25
+ assert vehicle_state.panoramic?
26
+ end
27
+
28
+ def test_perf
29
+ assert !vehicle_state.perf?
30
+ end
31
+
32
+ def test_spoiler
33
+ assert !vehicle_state.spoiler?
34
+ end
35
+
36
+ def test_dark_rims
37
+ assert !vehicle_state.dark_rims?
38
+ end
39
+
40
+ def test_locked
41
+ assert vehicle_state.locked?
42
+ end
43
+
44
+ def test_rear_trunk_open
45
+ assert !vehicle_state.rear_trunk_open?
46
+ end
47
+
48
+ def test_rear_trunk_open
49
+ assert !vehicle_state.rear_trunk_open?
50
+ end
51
+
52
+ def test_passenger_front_door_open?
53
+ assert !vehicle_state.passenger_front_door_open?
54
+ end
55
+
56
+ def test_passenger_rear_door_open?
57
+ assert !vehicle_state.passenger_rear_door_open?
58
+ end
59
+
60
+ def test_driver_front_door_open?
61
+ assert !vehicle_state.driver_front_door_open?
62
+ end
63
+
64
+ def test_driver_rear_door_open?
65
+ assert !vehicle_state.driver_rear_door_open?
66
+ end
67
+
68
+ def test_sun_roof_percent_open
69
+ assert_equal 0, vehicle_state.sun_roof_percent_open
70
+ end
71
+
72
+ def test_sun_roof_state
73
+ assert_equal "unknown", vehicle_state.sun_roof_state
74
+ end
75
+
76
+ def test_sun_roof_installed?
77
+ assert vehicle_state.sun_roof_installed?
78
+ end
79
+ end
80
+
metadata ADDED
@@ -0,0 +1,135 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tesla-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Gavin Stark
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: httpclient
16
+ prerelease: false
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.3.2
22
+ none: false
23
+ type: :runtime
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ version: 2.3.2
29
+ none: false
30
+ - !ruby/object:Gem::Dependency
31
+ name: vcr
32
+ prerelease: false
33
+ requirement: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 2.4.0
38
+ none: false
39
+ type: :development
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: 2.4.0
45
+ none: false
46
+ - !ruby/object:Gem::Dependency
47
+ name: webmock
48
+ prerelease: false
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 1.9.1
54
+ none: false
55
+ type: :development
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: 1.9.1
61
+ none: false
62
+ description: Implements the Tesla Model S HTTP API
63
+ email:
64
+ - gavin@gstark.com
65
+ executables: []
66
+ extensions: []
67
+ extra_rdoc_files: []
68
+ files:
69
+ - .gitignore
70
+ - Gemfile
71
+ - LICENSE.txt
72
+ - README.rdoc
73
+ - Rakefile
74
+ - fixtures/vcr_cassettes/charge_state.yml
75
+ - fixtures/vcr_cassettes/climate_state.yml
76
+ - fixtures/vcr_cassettes/connection.yml
77
+ - fixtures/vcr_cassettes/drive_state.yml
78
+ - fixtures/vcr_cassettes/gui_settings.yml
79
+ - fixtures/vcr_cassettes/vehicle.yml
80
+ - fixtures/vcr_cassettes/vehicle_state.yml
81
+ - lib/tesla-api.rb
82
+ - lib/tesla-api/charge_state.rb
83
+ - lib/tesla-api/climate_state.rb
84
+ - lib/tesla-api/connection.rb
85
+ - lib/tesla-api/data.rb
86
+ - lib/tesla-api/drive_state.rb
87
+ - lib/tesla-api/errors.rb
88
+ - lib/tesla-api/gui_settings.rb
89
+ - lib/tesla-api/private_api.rb
90
+ - lib/tesla-api/tesla_api.rb
91
+ - lib/tesla-api/vehicle.rb
92
+ - lib/tesla-api/vehicle_state.rb
93
+ - lib/tesla-api/version.rb
94
+ - tesla-api.gemspec
95
+ - test/helper.rb
96
+ - test/test_charge_state.rb
97
+ - test/test_climate_state.rb
98
+ - test/test_connection.rb
99
+ - test/test_drive_state.rb
100
+ - test/test_gui_settings.rb
101
+ - test/test_vehicle.rb
102
+ - test/test_vehicle_state.rb
103
+ homepage: ''
104
+ licenses: []
105
+ post_install_message:
106
+ rdoc_options: []
107
+ require_paths:
108
+ - lib
109
+ required_ruby_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ none: false
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ! '>='
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ none: false
121
+ requirements: []
122
+ rubyforge_project:
123
+ rubygems_version: 1.8.24
124
+ signing_key:
125
+ specification_version: 3
126
+ summary: Implements the Tesla Model S HTTP API
127
+ test_files:
128
+ - test/helper.rb
129
+ - test/test_charge_state.rb
130
+ - test/test_climate_state.rb
131
+ - test/test_connection.rb
132
+ - test/test_drive_state.rb
133
+ - test/test_gui_settings.rb
134
+ - test/test_vehicle.rb
135
+ - test/test_vehicle_state.rb