datawow 1.2.0
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 +7 -0
- data/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +59 -0
- data/INSTALL.md +7 -0
- data/README/ai_docs.md +153 -0
- data/README/image_docs.md +119 -0
- data/README/text_docs.md +83 -0
- data/README/video_docs.md +53 -0
- data/README.md +160 -0
- data/Rakefile +12 -0
- data/datawow.gemspec +28 -0
- data/lib/datawow/client_response.rb +18 -0
- data/lib/datawow/connection.rb +99 -0
- data/lib/datawow/connector.rb +118 -0
- data/lib/datawow/error.rb +15 -0
- data/lib/datawow/faraday/raise_http_exception.rb +40 -0
- data/lib/datawow/models/images/image_choices.rb +16 -0
- data/lib/datawow/models/images/image_closed_questions.rb +16 -0
- data/lib/datawow/models/images/image_messages.rb +16 -0
- data/lib/datawow/models/images/image_photo_tags.rb +16 -0
- data/lib/datawow/models/images/nanameue_human.rb +16 -0
- data/lib/datawow/models/interface.rb +26 -0
- data/lib/datawow/models/predictions/predictors.rb +18 -0
- data/lib/datawow/models/texts/text_categories.rb +16 -0
- data/lib/datawow/models/texts/text_closed_questions.rb +16 -0
- data/lib/datawow/models/texts/text_conversations.rb +16 -0
- data/lib/datawow/models/videos/video_classifications.rb +17 -0
- data/lib/datawow/version.rb +3 -0
- data/lib/datawow.rb +75 -0
- data/lib/generators/datawow/install_generator.rb +18 -0
- data/lib/generators/templates/datawow_api.rb +5 -0
- data/test/datawow/client_response_test.rb +29 -0
- data/test/datawow/connection_test.rb +85 -0
- data/test/datawow/connector_test.rb +79 -0
- data/test/datawow/image_choices_test.rb +48 -0
- data/test/datawow/image_closed_questions_test.rb +47 -0
- data/test/datawow/image_messages_test.rb +48 -0
- data/test/datawow/image_photo_tags_test.rb +48 -0
- data/test/datawow/nanameue_human_test.rb +47 -0
- data/test/datawow/predictors_test.rb +48 -0
- data/test/datawow/text_categories_test.rb +48 -0
- data/test/datawow/text_closed_questions_test.rb +48 -0
- data/test/datawow/text_conversations_test.rb +48 -0
- data/test/datawow/video_classifications_test.rb +48 -0
- data/test/datawow_test.rb +34 -0
- data/test/fixtures/image_choice/all.json +27 -0
- data/test/fixtures/image_choice/create.json +25 -0
- data/test/fixtures/image_closed_question/all.json +21 -0
- data/test/fixtures/image_closed_question/create.json +19 -0
- data/test/fixtures/image_message/all.json +22 -0
- data/test/fixtures/image_message/create.json +20 -0
- data/test/fixtures/image_photo_tag/all.json +22 -0
- data/test/fixtures/image_photo_tag/create.json +20 -0
- data/test/fixtures/nanameue_human/all.json +25 -0
- data/test/fixtures/nanameue_human/create.json +21 -0
- data/test/fixtures/prediction/all.json +21 -0
- data/test/fixtures/prediction/create.json +19 -0
- data/test/fixtures/text_category/all.json +34 -0
- data/test/fixtures/text_category/create.json +27 -0
- data/test/fixtures/text_closed_question/all.json +27 -0
- data/test/fixtures/text_closed_question/create.json +20 -0
- data/test/fixtures/text_conversation/all.json +33 -0
- data/test/fixtures/text_conversation/create.json +26 -0
- data/test/fixtures/video_classification/all.json +21 -0
- data/test/fixtures/video_classification/create.json +19 -0
- data/test/helper/file_reader.rb +11 -0
- data/test/test_helper.rb +59 -0
- metadata +254 -0
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Datawow
|
4
|
+
class ConnectionTest < Minitest::Test
|
5
|
+
def test_get_success
|
6
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
7
|
+
.to_return(body: JSON.generate(data: 'foo', meta: { message: 'success', code: 200 }), status: 200)
|
8
|
+
response = connection.get('/images', {})
|
9
|
+
assert_instance_of(Response, response)
|
10
|
+
assert_equal(200, response.status)
|
11
|
+
assert_equal('success', response.message)
|
12
|
+
assert_equal('success', response.meta['message'])
|
13
|
+
assert_equal(200, response.status)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_get_failed
|
17
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
18
|
+
.to_return(body: JSON.generate(data: '', meta: { message: 'Internal Server Error', code: 500 }), status: 500)
|
19
|
+
response = connection.get('/images', {})
|
20
|
+
assert_instance_of(Response, response)
|
21
|
+
assert_equal(500, response.status)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_post_success
|
25
|
+
stub_request(:post, 'https://kiyo-image.datawow.io/api/v1/images')
|
26
|
+
.to_return(body: JSON.generate(data: 'foo', meta: { code: 200 }), status: 200)
|
27
|
+
response = connection.post('/images', {})
|
28
|
+
assert_instance_of(Response, response)
|
29
|
+
assert_equal(200, response.status)
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_post_failed
|
33
|
+
stub_request(:post, 'https://kiyo-image.datawow.io/api/v1/images')
|
34
|
+
.to_return(body: JSON.generate(data: '', meta: { code: 500, message: 'Internal Server Error' }), status: 500)
|
35
|
+
response = connection.post('/images', {})
|
36
|
+
assert_instance_of(Response, response)
|
37
|
+
assert_equal(500, response.status)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_connection_failed
|
41
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
42
|
+
.to_raise(Faraday::ConnectionFailed.new('connection failed'))
|
43
|
+
response = connection.get('/images')
|
44
|
+
assert_instance_of(Response, response)
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_bad_request_status
|
48
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
49
|
+
.to_return(status: 400, body: JSON.generate(data: '', meta: { message: 'bad request', code: 400 }))
|
50
|
+
response = connection.get('/images', {})
|
51
|
+
assert_instance_of(Response, response)
|
52
|
+
assert_equal(400, response.status)
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_forbidden_status
|
56
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
57
|
+
.to_return(body: JSON.generate(data: '', meta: { message: 'forbidden', code: 403 }), status: 403)
|
58
|
+
response = connection.get('/images', {})
|
59
|
+
assert_instance_of(Response, response)
|
60
|
+
assert_equal(403, response.status)
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_not_found_status
|
64
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
65
|
+
.to_return(body: JSON.generate(data: '', meta: { message: 'not found', code: 404 }), status: 404)
|
66
|
+
response = connection.get('/images', {})
|
67
|
+
assert_instance_of(Response, response)
|
68
|
+
assert_equal(404, response.status)
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_edge_case_error
|
72
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
73
|
+
.to_return(body: JSON.generate(data: '', meta: { message: 'version not supported', code: 505 }), status: 505)
|
74
|
+
response = connection.get('/images', {})
|
75
|
+
assert_instance_of(Response, response)
|
76
|
+
assert_equal(505, response.status)
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
|
81
|
+
def connection
|
82
|
+
@connection ||= Datawow::Connection.new(model: :image)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Datawow
|
6
|
+
class ConnectorTest < Minitest::Test
|
7
|
+
def test_get_success
|
8
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
9
|
+
.to_return(body: JSON.generate(data: 'foo', meta: { message: 'success', code: 200 }), status: 200)
|
10
|
+
response = connector.get
|
11
|
+
assert_instance_of(Response, response)
|
12
|
+
assert_equal(200, response.status)
|
13
|
+
assert_equal('success', response.message)
|
14
|
+
assert_equal('success', response.meta['message'])
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_get_failed
|
18
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
19
|
+
.to_return(body: JSON.generate(data: '', meta: { message: 'Internal Server Error', code: 500 }), status: 500)
|
20
|
+
response = connector.get
|
21
|
+
assert_instance_of(Response, response)
|
22
|
+
assert_equal(500, response.status)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_post_success
|
26
|
+
stub_request(:post, 'https://kiyo-image.datawow.io/api/v1/images')
|
27
|
+
.to_return(body: JSON.generate(data: 'foo', meta: { code: 200 }), status: 200)
|
28
|
+
response = connector.post
|
29
|
+
assert_instance_of(Response, response)
|
30
|
+
assert_equal(200, response.status)
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_post_failed
|
34
|
+
stub_request(:post, 'https://kiyo-image.datawow.io/api/v1/images')
|
35
|
+
.to_return(body: JSON.generate(data: '', meta: { code: 500, message: 'Internal Server Error' }), status: 500)
|
36
|
+
response = connector.post
|
37
|
+
assert_instance_of(Response, response)
|
38
|
+
assert_equal(500, response.status)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_bad_request_status
|
42
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
43
|
+
.to_return(status: 400, body: JSON.generate(data: '', meta: { message: 'bad request', code: 400 }))
|
44
|
+
response = connector.get
|
45
|
+
assert_instance_of(Response, response)
|
46
|
+
assert_equal(400, response.status)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_forbidden_status
|
50
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
51
|
+
.to_return(body: JSON.generate(data: '', meta: { message: 'forbidden', code: 403 }), status: 403)
|
52
|
+
response = connector.get
|
53
|
+
assert_instance_of(Response, response)
|
54
|
+
assert_equal(403, response.status)
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_not_found_status
|
58
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
59
|
+
.to_return(body: JSON.generate(data: '', meta: { message: 'not found', code: 404 }), status: 404)
|
60
|
+
response = connector.get
|
61
|
+
assert_instance_of(Response, response)
|
62
|
+
assert_equal(404, response.status)
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_edge_case_error
|
66
|
+
stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
|
67
|
+
.to_return(body: JSON.generate(data: '', meta: { message: 'version not supported', code: 505 }), status: 505)
|
68
|
+
response = connector.get
|
69
|
+
assert_instance_of(Response, response)
|
70
|
+
assert_equal(505, response.status)
|
71
|
+
end
|
72
|
+
|
73
|
+
private
|
74
|
+
|
75
|
+
def connector
|
76
|
+
connector ||= Connector.new('images', :image, token: 'test')
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Datawow
|
6
|
+
class ImageChoiceTest < TestBase
|
7
|
+
def test_all
|
8
|
+
stub_request(:get, IMAGE_CHOICES_URL)
|
9
|
+
.to_return(body: JSON.generate(image_choices), status: 200)
|
10
|
+
response = model.all
|
11
|
+
|
12
|
+
assert_instance_of(Response, response)
|
13
|
+
assert_equal(200, response.status)
|
14
|
+
refute_nil(response.data)
|
15
|
+
refute_nil(response.meta)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_create
|
19
|
+
stub_request(:post, IMAGE_CHOICES_URL)
|
20
|
+
.to_return(body: JSON.generate(image_choice), status: 200)
|
21
|
+
response = model.create(options)
|
22
|
+
|
23
|
+
assert_instance_of(Response, response)
|
24
|
+
assert_equal(200, response.status)
|
25
|
+
refute_nil(response.data)
|
26
|
+
refute_nil(response.meta)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_find
|
30
|
+
stub_request(:get, "#{IMAGE_CHOICES_URL}?id=test")
|
31
|
+
.to_return(body: JSON.generate(image_choice), status: 200)
|
32
|
+
response = model.find_by(id: 'test')
|
33
|
+
|
34
|
+
assert_instance_of(Response, response)
|
35
|
+
assert_equal(200, response.status)
|
36
|
+
refute_nil(response.data)
|
37
|
+
refute_nil(response.meta)
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def model
|
43
|
+
@model ||= ImageChoice.new
|
44
|
+
@model.token = 'test'
|
45
|
+
@model
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
module Datawow
|
5
|
+
class ImageClosedQuestionTest < TestBase
|
6
|
+
def test_all
|
7
|
+
stub_request(:get, IMAGE_CLOSED_QUESTIONS_URL)
|
8
|
+
.to_return(body: JSON.generate(image_closed_questions), status: 200)
|
9
|
+
response = model.all
|
10
|
+
|
11
|
+
assert_instance_of(Response, response)
|
12
|
+
assert_equal(200, response.status)
|
13
|
+
refute_nil(response.data)
|
14
|
+
refute_nil(response.meta)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_create
|
18
|
+
stub_request(:post, IMAGE_CLOSED_QUESTIONS_URL)
|
19
|
+
.to_return(body: JSON.generate(image_closed_question), status: 200)
|
20
|
+
response = model.create(options)
|
21
|
+
|
22
|
+
assert_instance_of(Response, response)
|
23
|
+
assert_equal(200, response.status)
|
24
|
+
refute_nil(response.data)
|
25
|
+
refute_nil(response.meta)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_find
|
29
|
+
stub_request(:get, "#{IMAGE_CLOSED_QUESTIONS_URL}?id=test")
|
30
|
+
.to_return(body: JSON.generate(image_closed_question), status: 200)
|
31
|
+
response = model.find_by(id: 'test')
|
32
|
+
|
33
|
+
assert_instance_of(Response, response)
|
34
|
+
assert_equal(200, response.status)
|
35
|
+
refute_nil(response.data)
|
36
|
+
refute_nil(response.meta)
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def model
|
42
|
+
@model ||= ImageClosedQuestion.new
|
43
|
+
@model.token = 'test'
|
44
|
+
@model
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Datawow
|
6
|
+
class ImageMessageTest < TestBase
|
7
|
+
def test_all
|
8
|
+
stub_request(:get, IMAGE_MESSAGES_URL)
|
9
|
+
.to_return(body: JSON.generate(image_messages), status: 200)
|
10
|
+
response = model.all
|
11
|
+
|
12
|
+
assert_instance_of(Response, response)
|
13
|
+
assert_equal(200, response.status)
|
14
|
+
refute_nil(response.data)
|
15
|
+
refute_nil(response.meta)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_create
|
19
|
+
stub_request(:post, IMAGE_MESSAGES_URL)
|
20
|
+
.to_return(body: JSON.generate(image_message), status: 200)
|
21
|
+
response = model.create(options)
|
22
|
+
|
23
|
+
assert_instance_of(Response, response)
|
24
|
+
assert_equal(200, response.status)
|
25
|
+
refute_nil(response.data)
|
26
|
+
refute_nil(response.meta)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_find
|
30
|
+
stub_request(:get, "#{IMAGE_MESSAGES_URL}?id=test")
|
31
|
+
.to_return(body: JSON.generate(image_message), status: 200)
|
32
|
+
response = model.find_by(id: 'test')
|
33
|
+
|
34
|
+
assert_instance_of(Response, response)
|
35
|
+
assert_equal(200, response.status)
|
36
|
+
refute_nil(response.data)
|
37
|
+
refute_nil(response.meta)
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def model
|
43
|
+
@model ||= ImageMessage.new
|
44
|
+
@model.token = 'test'
|
45
|
+
@model
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Datawow
|
6
|
+
class ImagePhotoTagsTest < TestBase
|
7
|
+
def test_all
|
8
|
+
stub_request(:get, IMAGE_PHOTO_TAGS)
|
9
|
+
.to_return(body: JSON.generate(image_photo_tags), status: 200)
|
10
|
+
response = model.all
|
11
|
+
|
12
|
+
assert_instance_of(Response, response)
|
13
|
+
assert_equal(200, response.status)
|
14
|
+
refute_nil(response.data)
|
15
|
+
refute_nil(response.meta)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_create
|
19
|
+
stub_request(:post, IMAGE_PHOTO_TAGS)
|
20
|
+
.to_return(body: JSON.generate(image_photo_tags), status: 200)
|
21
|
+
response = model.create(options)
|
22
|
+
|
23
|
+
assert_instance_of(Response, response)
|
24
|
+
assert_equal(200, response.status)
|
25
|
+
refute_nil(response.data)
|
26
|
+
refute_nil(response.meta)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_find
|
30
|
+
stub_request(:get, "#{IMAGE_PHOTO_TAGS}?id=test")
|
31
|
+
.to_return(body: JSON.generate(image_photo_tag), status: 200)
|
32
|
+
response = model.find_by(id: 'test')
|
33
|
+
|
34
|
+
assert_instance_of(Response, response)
|
35
|
+
assert_equal(200, response.status)
|
36
|
+
refute_nil(response.data)
|
37
|
+
refute_nil(response.meta)
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def model
|
43
|
+
@model ||= ImagePhotoTag.new
|
44
|
+
@model.token = 'test'
|
45
|
+
@model
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
module Datawow
|
5
|
+
class NanameueHumanTest < TestBase
|
6
|
+
def test_all
|
7
|
+
stub_request(:get, NANAMEUE_HUMAN_URL)
|
8
|
+
.to_return(body: JSON.generate(nanameue_humans), status: 200)
|
9
|
+
response = model.all
|
10
|
+
|
11
|
+
assert_instance_of(Response, response)
|
12
|
+
assert_equal(200, response.status)
|
13
|
+
refute_nil(response.data)
|
14
|
+
refute_nil(response.meta)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_create
|
18
|
+
stub_request(:post, NANAMEUE_HUMAN_URL)
|
19
|
+
.to_return(body: JSON.generate(nanameue_human), status: 201)
|
20
|
+
response = model.create(options)
|
21
|
+
|
22
|
+
assert_instance_of(Response, response)
|
23
|
+
assert_equal(201, response.status)
|
24
|
+
refute_nil(response.data)
|
25
|
+
refute_nil(response.meta)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_find
|
29
|
+
stub_request(:get, "#{NANAMEUE_HUMAN_URL}?id=test")
|
30
|
+
.to_return(body: JSON.generate(nanameue_human), status: 200)
|
31
|
+
response = model.find_by(id: 'test')
|
32
|
+
|
33
|
+
assert_instance_of(Response, response)
|
34
|
+
assert_equal(200, response.status)
|
35
|
+
refute_nil(response.data)
|
36
|
+
refute_nil(response.meta)
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def model
|
42
|
+
@model ||= NanameueHuman.new
|
43
|
+
@model.token = 'test'
|
44
|
+
@model
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Datawow
|
6
|
+
class PredictorsTest < TestBase
|
7
|
+
def test_all
|
8
|
+
stub_request(:get, PREDICTIONS_URL)
|
9
|
+
.to_return(body: JSON.generate(predictions), status: 200)
|
10
|
+
response = model.all
|
11
|
+
|
12
|
+
assert_instance_of(Response, response)
|
13
|
+
assert_equal(200, response.status)
|
14
|
+
refute_nil(response.data)
|
15
|
+
refute_nil(response.meta)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_create
|
19
|
+
stub_request(:post, PREDICTIONS_URL)
|
20
|
+
.to_return(body: JSON.generate(prediction), status: 200)
|
21
|
+
response = model.create(options)
|
22
|
+
|
23
|
+
assert_instance_of(Response, response)
|
24
|
+
assert_equal(200, response.status)
|
25
|
+
refute_nil(response.data)
|
26
|
+
refute_nil(response.meta)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_find
|
30
|
+
stub_request(:get, "#{PREDICTIONS_URL}/1")
|
31
|
+
.to_return(body: JSON.generate(prediction), status: 200)
|
32
|
+
response = model.find_by(id: '1')
|
33
|
+
|
34
|
+
assert_instance_of(Response, response)
|
35
|
+
assert_equal(200, response.status)
|
36
|
+
refute_nil(response.data)
|
37
|
+
refute_nil(response.meta)
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def model
|
43
|
+
@model ||= Predictor.new
|
44
|
+
@model.token = 'test'
|
45
|
+
@model
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Datawow
|
6
|
+
class TextCategoriesTest < TestBase
|
7
|
+
def test_all
|
8
|
+
stub_request(:get, TEXT_CATEGORY_URL)
|
9
|
+
.to_return(body: JSON.generate(text_categories), status: 200)
|
10
|
+
response = model.all
|
11
|
+
|
12
|
+
assert_instance_of(Response, response)
|
13
|
+
assert_equal(200, response.status)
|
14
|
+
refute_nil(response.data)
|
15
|
+
refute_nil(response.meta)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_create
|
19
|
+
stub_request(:post, TEXT_CATEGORY_URL)
|
20
|
+
.to_return(body: JSON.generate(text_categories), status: 200)
|
21
|
+
response = model.create(options)
|
22
|
+
|
23
|
+
assert_instance_of(Response, response)
|
24
|
+
assert_equal(200, response.status)
|
25
|
+
refute_nil(response.data)
|
26
|
+
refute_nil(response.meta)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_find
|
30
|
+
stub_request(:get, "#{TEXT_CATEGORY_URL}?id=1")
|
31
|
+
.to_return(body: JSON.generate(text_category), status: 200)
|
32
|
+
response = model.find_by(id: '1')
|
33
|
+
|
34
|
+
assert_instance_of(Response, response)
|
35
|
+
assert_equal(200, response.status)
|
36
|
+
refute_nil(response.data)
|
37
|
+
refute_nil(response.meta)
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def model
|
43
|
+
@model ||= TextCategory.new
|
44
|
+
@model.token = 'test'
|
45
|
+
@model
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Datawow
|
6
|
+
class TextClosedQuestionsTest < TestBase
|
7
|
+
def test_all
|
8
|
+
stub_request(:get, TEXT_CLOSED_QUESTION_URL)
|
9
|
+
.to_return(body: JSON.generate(text_conversations), status: 200)
|
10
|
+
response = model.all
|
11
|
+
|
12
|
+
assert_instance_of(Response, response)
|
13
|
+
assert_equal(200, response.status)
|
14
|
+
refute_nil(response.data)
|
15
|
+
refute_nil(response.meta)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_create
|
19
|
+
stub_request(:post, TEXT_CLOSED_QUESTION_URL)
|
20
|
+
.to_return(body: JSON.generate(text_conversations), status: 200)
|
21
|
+
response = model.create(options)
|
22
|
+
|
23
|
+
assert_instance_of(Response, response)
|
24
|
+
assert_equal(200, response.status)
|
25
|
+
refute_nil(response.data)
|
26
|
+
refute_nil(response.meta)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_find
|
30
|
+
stub_request(:get, "#{TEXT_CLOSED_QUESTION_URL}?id=1")
|
31
|
+
.to_return(body: JSON.generate(text_conversation), status: 200)
|
32
|
+
response = model.find_by(id: '1')
|
33
|
+
|
34
|
+
assert_instance_of(Response, response)
|
35
|
+
assert_equal(200, response.status)
|
36
|
+
refute_nil(response.data)
|
37
|
+
refute_nil(response.meta)
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def model
|
43
|
+
@model ||= TextClosedQuestion.new
|
44
|
+
@model.token = 'test'
|
45
|
+
@model
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Datawow
|
6
|
+
class TextConversationsTest < TestBase
|
7
|
+
def test_all
|
8
|
+
stub_request(:get, TEXT_CONVERSATION_URL)
|
9
|
+
.to_return(body: JSON.generate(text_closed_questions), status: 200)
|
10
|
+
response = model.all
|
11
|
+
|
12
|
+
assert_instance_of(Response, response)
|
13
|
+
assert_equal(200, response.status)
|
14
|
+
refute_nil(response.data)
|
15
|
+
refute_nil(response.meta)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_create
|
19
|
+
stub_request(:post, TEXT_CONVERSATION_URL)
|
20
|
+
.to_return(body: JSON.generate(text_closed_questions), status: 200)
|
21
|
+
response = model.create(options)
|
22
|
+
|
23
|
+
assert_instance_of(Response, response)
|
24
|
+
assert_equal(200, response.status)
|
25
|
+
refute_nil(response.data)
|
26
|
+
refute_nil(response.meta)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_find
|
30
|
+
stub_request(:get, "#{TEXT_CONVERSATION_URL}?id=1")
|
31
|
+
.to_return(body: JSON.generate(text_closed_question), status: 200)
|
32
|
+
response = model.find_by(id:1)
|
33
|
+
|
34
|
+
assert_instance_of(Response, response)
|
35
|
+
assert_equal(200, response.status)
|
36
|
+
refute_nil(response.data)
|
37
|
+
refute_nil(response.meta)
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def model
|
43
|
+
@model ||= TextConversation.new
|
44
|
+
@model.token = 'test'
|
45
|
+
@model
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Datawow
|
6
|
+
class VideoClassificationsTest < TestBase
|
7
|
+
def test_all
|
8
|
+
stub_request(:get, VIDEO_URL)
|
9
|
+
.to_return(body: JSON.generate(videos), status: 200)
|
10
|
+
response = model.all
|
11
|
+
|
12
|
+
assert_instance_of(Response, response)
|
13
|
+
assert_equal(200, response.status)
|
14
|
+
refute_nil(response.data)
|
15
|
+
refute_nil(response.meta)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_create
|
19
|
+
stub_request(:post, VIDEO_URL)
|
20
|
+
.to_return(body: JSON.generate(videos), status: 200)
|
21
|
+
response = model.create(options)
|
22
|
+
|
23
|
+
assert_instance_of(Response, response)
|
24
|
+
assert_equal(200, response.status)
|
25
|
+
refute_nil(response.data)
|
26
|
+
refute_nil(response.meta)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_find
|
30
|
+
stub_request(:get, "#{VIDEO_URL}/1")
|
31
|
+
.to_return(body: JSON.generate(video), status: 200)
|
32
|
+
response = model.find_by(id: 1)
|
33
|
+
|
34
|
+
assert_instance_of(Response, response)
|
35
|
+
assert_equal(200, response.status)
|
36
|
+
refute_nil(response.data)
|
37
|
+
refute_nil(response.meta)
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def model
|
43
|
+
@model ||= VideoClassification.new
|
44
|
+
@model.token = 'test'
|
45
|
+
@model
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Datawow
|
4
|
+
class DatawowTest < Minitest::Test
|
5
|
+
def test_setup
|
6
|
+
Datawow.setup { |config| }
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_image_closed_question
|
10
|
+
closed_question = Datawow.image_closed_question
|
11
|
+
refute_nil(closed_question)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_image_photo_tag
|
15
|
+
photo_tag = Datawow.image_photo_tag
|
16
|
+
refute_nil(photo_tag)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_image_choice
|
20
|
+
choice = Datawow.image_choice
|
21
|
+
refute_nil(choice)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_image_message
|
25
|
+
message = Datawow.image_message
|
26
|
+
refute_nil(message)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_prediction
|
30
|
+
prediction = Datawow.prediction
|
31
|
+
refute_nil(prediction)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|