simple_record 2.1.3 → 2.1.6

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.
@@ -1,43 +0,0 @@
1
- require 'test/unit'
2
- require File.expand_path(File.dirname(__FILE__) + "/../lib/simple_record")
3
- require "yaml"
4
- require 'aws'
5
- require 'my_model'
6
- require 'my_child_model'
7
- require 'active_support'
8
- require 'test_base'
9
-
10
-
11
- class Person < SimpleRecord::Base
12
- has_strings :name, :i_as_s
13
- has_ints :age
14
- end
15
- class TestEncodings < TestBase
16
-
17
- def test_ascii_http_post
18
- first_name = "joe" + ("X" * 1000) # pad the field to help get the URL over the 2000 length limit so AWS uses a POST
19
- last_name = "blow" + ("X" * 1000) # pad the field to help get the URL over the 2000 length limit so AWS uses a POST
20
- mm = MyModel.create :first_name=>first_name, :last_name=>last_name
21
- mm.save
22
- sleep 1
23
- assert mm.first_name == first_name
24
- assert mm.last_name == last_name
25
- mm2 = MyModel.find(mm.id)
26
- assert mm2.first_name == first_name
27
- assert mm2.last_name == last_name
28
- end
29
-
30
- def test_utf8_http_post
31
- first_name = "jos�" + ("X" * 1000) # pad the field to help get the URL over the 2000 length limit so AWS uses a POST
32
- last_name = "??" + ("X" * 1000) # pad the field to help get the URL over the 2000 length limit so AWS uses a POST
33
- mm = MyModel.create :first_name=>first_name, :last_name=>last_name
34
- mm.save
35
- sleep 1
36
- assert mm.first_name == first_name
37
- assert mm.last_name == last_name
38
- mm2 = MyModel.find(mm.id)
39
- assert mm2.first_name == first_name
40
- assert mm2.last_name == last_name
41
- end
42
-
43
- end
@@ -1,63 +0,0 @@
1
- require 'test/unit'
2
- require_relative "../lib/simple_record"
3
- require "yaml"
4
- require 'aws'
5
- require_relative 'my_model'
6
- require_relative 'my_child_model'
7
- require 'active_support/core_ext'
8
- require_relative 'test_base'
9
-
10
-
11
- class Person < SimpleRecord::Base
12
- has_strings :name, :i_as_s
13
- has_ints :age
14
- end
15
- class TestGlobalOptions < TestBase
16
-
17
- def setup
18
- super
19
- end
20
-
21
- def test_domain_prefix
22
-
23
- SimpleRecord::Base.set_domain_prefix("someprefix_")
24
-
25
- p = Person.create(:name=>"my prefix name")
26
-
27
- sleep 1
28
-
29
- sdb_atts = @@sdb.select("select * from someprefix_people")
30
- puts 'sdb_atts=' + sdb_atts.inspect
31
-
32
- @@sdb.delete_domain("someprefix_people") # doing it here so it's done before assertions might fail
33
-
34
- assert sdb_atts[:items].size == 1, "hmmm, not size 1: " + sdb_atts[:items].size.to_s
35
-
36
- end
37
-
38
- def test_created_col_and_updated_col
39
- reset_connection(:created_col=>"created_at", :updated_col=>"updated_at")
40
-
41
- p = Person.create(:name=>"my prefix name")
42
- sleep 1
43
-
44
- sdb_atts = @@sdb.select("select * from simplerecord_tests_people")
45
- puts 'sdb_atts=' + sdb_atts.inspect
46
-
47
-
48
- @@sdb.delete_domain("simplerecord_tests_people")
49
-
50
- items = sdb_atts[:items][0]
51
- first = nil
52
- items.each_pair do |k, v|
53
- first = v
54
- break
55
- end
56
-
57
- assert_nil first["created"]
58
- assert_not_nil first["created_at"]
59
-
60
-
61
- end
62
-
63
- end
data/test/test_helpers.rb DELETED
@@ -1,15 +0,0 @@
1
-
2
- class TestHelpers
3
-
4
- def self.clear_out_my_models
5
- mms = MyModel.find(:all)
6
- puts 'mms.size=' + mms.size.to_s
7
- i = 0
8
- mms.each do |x|
9
- puts 'deleting=' + i.to_s
10
- x.delete
11
- i+=1
12
- end
13
- end
14
-
15
- end
data/test/test_json.rb DELETED
@@ -1,82 +0,0 @@
1
- require 'test/unit'
2
- require File.join(File.dirname(__FILE__), "/../lib/simple_record")
3
- require File.join(File.dirname(__FILE__), "./test_helpers")
4
- require File.join(File.dirname(__FILE__), "./test_base")
5
- require "yaml"
6
- require 'aws'
7
- require_relative 'my_model'
8
- require_relative 'my_child_model'
9
- require_relative 'model_with_enc'
10
- require 'active_support/core_ext'
11
-
12
- # Tests for SimpleRecord
13
- #
14
-
15
- class TestJson < TestBase
16
-
17
-
18
- def test_json
19
- mm = MyModel.new
20
-
21
- mm.name = "whatever"
22
- mm.age = "1"
23
-
24
-
25
- jsoned = mm.to_json
26
- puts 'jsoned=' + jsoned
27
- unjsoned = JSON.parse jsoned
28
- puts 'unjsoned=' + unjsoned.inspect
29
- assert unjsoned.name == "whatever"
30
-
31
- mm.save
32
-
33
- puts 'no trying an array'
34
-
35
- data = {}
36
- models = []
37
- data[:models] = models
38
-
39
- models << mm
40
-
41
- jsoned = models.to_json
42
- puts 'jsoned=' + jsoned
43
- unjsoned = JSON.parse jsoned
44
- puts 'unjsoned=' + unjsoned.inspect
45
- assert unjsoned.size == models.size
46
- assert unjsoned[0].name == mm.name
47
- assert unjsoned[0].age == mm.age
48
- assert unjsoned[0].created.present?
49
- assert unjsoned[0].id.present?
50
- assert unjsoned[0].id == mm.id, "unjsoned.id=#{unjsoned[0].id}"
51
-
52
- puts 'array good'
53
-
54
- t = Tester.new
55
- t2 = Tester.new
56
- t2.x1 = "i'm number 2"
57
- t.x1 = 1
58
- t.x2 = t2
59
- jsoned = t.to_json
60
-
61
- puts 'jsoned=' + jsoned
62
-
63
- puts 'non simplerecord object good'
64
-
65
- mcm = MyChildModel.new
66
- mcm.name = "child"
67
- mcm.my_model = mm
68
- jsoned = mcm.to_json
69
- puts 'jsoned=' + jsoned
70
- unjsoned = JSON.parse jsoned
71
- puts 'unjsoned=' + unjsoned.inspect
72
- assert mcm.my_model.id == unjsoned.my_model.id
73
-
74
- end
75
-
76
- end
77
-
78
- class Tester
79
-
80
- attr_accessor :x1, :x2
81
-
82
- end
data/test/test_lobs.rb DELETED
@@ -1,118 +0,0 @@
1
- require 'test/unit'
2
- require_relative "../lib/simple_record"
3
- require_relative "test_helpers"
4
- require_relative "test_base"
5
- require "yaml"
6
- require 'aws'
7
- require_relative 'my_model'
8
- require_relative 'my_child_model'
9
- require_relative 'model_with_enc'
10
-
11
- # Tests for SimpleRecord
12
- #
13
-
14
- class TestLobs < TestBase
15
-
16
-
17
- def test_clobs
18
- mm = MyModel.new
19
-
20
- puts mm.clob1.inspect
21
- assert mm.clob1.nil?
22
-
23
- mm.name = "whatever"
24
- mm.age = "1"
25
- mm.clob1 = "0" * 2000
26
- assert SimpleRecord.stats.s3_puts == 0
27
- puts mm.inspect
28
- mm.save
29
-
30
- assert SimpleRecord.stats.s3_puts == 1
31
- sleep 2
32
-
33
- mm.clob1 = "1" * 2000
34
- mm.clob2 = "2" * 2000
35
- mm.save
36
- assert SimpleRecord.stats.s3_puts == 3
37
-
38
- mm2 = MyModel.find(mm.id)
39
- assert mm.id == mm2.id
40
- puts 'mm.clob1=' + mm.clob1.to_s
41
- puts 'mm2.clob1=' + mm2.clob1.to_s
42
- assert mm.clob1 == mm2.clob1
43
- assert SimpleRecord.stats.s3_puts == 3, "puts is #{SimpleRecord.stats.s3_puts}"
44
- assert SimpleRecord.stats.s3_gets == 1, "gets is #{SimpleRecord.stats.s3_gets}"
45
- mm2.clob1 # make sure it doesn't do another get
46
- assert SimpleRecord.stats.s3_gets == 1
47
-
48
- assert mm.clob2 == mm2.clob2
49
- assert SimpleRecord.stats.s3_gets == 2
50
-
51
- mm2.save
52
-
53
- # shouldn't save twice if not dirty
54
- assert SimpleRecord.stats.s3_puts == 3
55
-
56
- mm2.delete
57
-
58
- assert_equal 2, SimpleRecord.stats.s3_deletes
59
-
60
- e = assert_raise(Aws::AwsError) do
61
- sclob = SimpleRecord.s3.bucket(mm2.s3_bucket_name2).get(mm2.s3_lob_id("clob1"))
62
- end
63
- assert_match(/NoSuchKey/, e.message)
64
- e = assert_raise(Aws::AwsError) do
65
- sclob = SimpleRecord.s3.bucket(mm2.s3_bucket_name2).get(mm2.s3_lob_id("clob2"))
66
- end
67
- assert_match(/NoSuchKey/, e.message)
68
-
69
-
70
- end
71
-
72
- def test_single_clob
73
- mm = SingleClobClass.new
74
-
75
- puts mm.clob1.inspect
76
- assert mm.clob1.nil?
77
-
78
- mm.name = "whatever"
79
- mm.clob1 = "0" * 2000
80
- mm.clob2 = "2" * 2000
81
- assert SimpleRecord.stats.s3_puts == 0
82
- puts mm.inspect
83
- mm.save
84
-
85
- assert SimpleRecord.stats.s3_puts == 1
86
-
87
- sleep 2
88
-
89
- mm2 = SingleClobClass.find(mm.id)
90
- assert mm.id == mm2.id
91
- puts 'mm.clob1=' + mm.clob1.to_s
92
- puts 'mm2.clob1=' + mm2.clob1.to_s
93
- assert_equal mm.clob1, mm2.clob1
94
- assert SimpleRecord.stats.s3_puts == 1, "puts is #{SimpleRecord.stats.s3_puts}"
95
- assert SimpleRecord.stats.s3_gets == 1, "gets is #{SimpleRecord.stats.s3_gets}"
96
- mm2.clob1 # make sure it doesn't do another get
97
- assert SimpleRecord.stats.s3_gets == 1
98
-
99
- assert mm.clob2 == mm2.clob2
100
- assert SimpleRecord.stats.s3_gets == 1
101
-
102
- mm2.save
103
-
104
- # shouldn't save twice if not dirty
105
- assert SimpleRecord.stats.s3_puts == 1
106
-
107
- mm2.delete
108
-
109
- assert SimpleRecord.stats.s3_deletes == 1
110
-
111
- e = assert_raise(Aws::AwsError) do
112
- sclob = SimpleRecord.s3.bucket(mm2.s3_bucket_name2).get(mm2.single_clob_id)
113
- end
114
- assert_match(/NoSuchKey/, e.message)
115
-
116
- end
117
-
118
- end
@@ -1,43 +0,0 @@
1
- require 'test/unit'
2
- require File.expand_path(File.dirname(__FILE__) + "/../lib/simple_record")
3
- require "yaml"
4
- require 'aws'
5
- require 'my_model'
6
- require 'my_child_model'
7
- require 'active_support'
8
- require 'test_base'
9
-
10
-
11
- class Person < SimpleRecord::Base
12
- has_strings :name, :i_as_s
13
- has_ints :age, :i2
14
- end
15
- class MarshalTest < TestBase
16
-
17
- def setup
18
- super
19
-
20
- Person.create_domain
21
- @person = Person.new(:name => 'old', :age => 70)
22
- @person.save
23
-
24
- assert !@person.changed?
25
- assert !@person.name_changed?
26
- end
27
-
28
- def teardown
29
- Person.delete_domain
30
- SimpleRecord.close_connection
31
- end
32
-
33
- def test_string_on_initialize
34
- p = Person.new(:name=>"Travis", :age=>5, :i2=>"6")
35
- assert p.name == "Travis"
36
- assert p.age == 5
37
- assert p.i2 == 6, "i2 == #{p.i2}"
38
-
39
-
40
- end
41
-
42
- end
43
-
@@ -1,31 +0,0 @@
1
- require 'test/unit'
2
- require File.join(File.dirname(__FILE__), "/../lib/simple_record")
3
- require File.join(File.dirname(__FILE__), "./test_helpers")
4
- require File.join(File.dirname(__FILE__), "./test_base")
5
- require "yaml"
6
- require 'aws'
7
- require 'my_model'
8
- require 'my_child_model'
9
- require 'model_with_enc'
10
- require 'active_support'
11
-
12
-
13
- # Pagination is intended to be just like will_paginate.
14
- class TestPagination < TestBase
15
-
16
- def test_paginate
17
- create_my_models(20)
18
-
19
- i = 20
20
- (1..3).each do |page|
21
- models = MyModel.paginate :page=>page, :per_page=>5, :order=>"created desc"
22
- assert models.size == 5, "models.size=#{models.size}"
23
- models.each do |m|
24
- i -= 1
25
- puts m.name
26
- assert m.age == i
27
- end
28
- end
29
- end
30
-
31
- end
data/test/test_rails3.rb DELETED
@@ -1,24 +0,0 @@
1
- require 'test/unit'
2
- require 'active_model'
3
- require File.join(File.dirname(__FILE__), "/../lib/simple_record")
4
- require File.join(File.dirname(__FILE__), "./test_helpers")
5
- require File.join(File.dirname(__FILE__), "./test_base")
6
- require "yaml"
7
- require 'aws'
8
- require_relative 'my_model'
9
- require_relative 'my_child_model'
10
- require_relative 'model_with_enc'
11
-
12
- # To test things related to rails 3 like ActiveModel usage.
13
- class TestRails3 < TestBase
14
-
15
- def test_active_model_defined
16
-
17
- my_model = MyModel.new
18
-
19
- assert (defined?(MyModel.model_name))
20
-
21
-
22
- end
23
-
24
- end
@@ -1,57 +0,0 @@
1
- # These ones take longer to run
2
-
3
- require 'test/unit'
4
- require File.join(File.dirname(__FILE__), "/../lib/simple_record")
5
- require File.join(File.dirname(__FILE__), "./test_helpers")
6
- require File.join(File.dirname(__FILE__), "./test_base")
7
- require "yaml"
8
- require 'aws'
9
- require 'my_model'
10
- require 'my_child_model'
11
- require 'active_support'
12
-
13
- # Tests for SimpleRecord
14
- #
15
-
16
- class TestResultsArray < TestBase
17
-
18
-
19
- # ensures that it uses next token and what not
20
- def test_big_result
21
- i = TestHelpers.clear_out_my_models
22
- SimpleRecord.stats.clear
23
- num_made = 110
24
- num_made.times do |i|
25
- mm = MyModel.create(:name=>"Travis", :age=>i, :cool=>true)
26
- end
27
- assert SimpleRecord.stats.saves == num_made
28
- rs = MyModel.find(:all) # should get 100 at a time
29
- assert rs.size == num_made
30
- i = 0
31
- rs.each do |x|
32
- #puts 'x=' + x.id
33
- i+=1
34
- end
35
- assert SimpleRecord.stats.selects == 3 # one for count.
36
- assert i == num_made
37
- # running through all the results twice to ensure it works properly after lazy loading complete.
38
- SimpleRecord.stats.clear
39
- i = 0
40
- rs.each do |x|
41
- #puts 'x=' + x.id
42
- i+=1
43
- end
44
- assert SimpleRecord.stats.selects == 0
45
- assert i == num_made
46
- end
47
-
48
- def test_limit
49
- SimpleRecord.stats.clear
50
- rs = MyModel.find(:all, :per_token=>2500)
51
- assert rs.size == 110
52
- assert SimpleRecord.stats.selects == 1, "SimpleRecord.stats.selects is #{SimpleRecord.stats.selects}"
53
-
54
- end
55
-
56
-
57
- end