tesla-api 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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