spec/spree_loader_spec.rb in datashift-0.4.3 vs spec/spree_loader_spec.rb in datashift-0.5.0

- old
+ new

@@ -30,21 +30,23 @@ include SpecHelper extend SpecHelper before_each_spree - @klass.count.should == 0 + @Product_klass.count.should == 0 @Taxon_klass.count.should == 0 @Variant_klass.count.should == 0 MethodDictionary.clear - MethodDictionary.find_operators( @klass ) + MethodDictionary.find_operators( @Product_klass ) # want to test both lookup and dynamic creation - this Taxonomy should be found, rest created root = @Taxonomy_klass.create( :name => 'Paintings' ) - @Taxon_klass.create( :name => 'Landscape', :taxonomy => root ) + t = @Taxon_klass.new( :name => 'Landscape' ) + t.taxonomy = root + t.save @Taxon_klass.count.should == 2 @product_loader = DataShift::SpreeHelper::ProductLoader.new rescue => e @@ -97,28 +99,28 @@ def test_basic_product( source ) @product_loader.perform_load( SpecHelper::spree_fixture(source), :mandatory => ['sku', 'name', 'price'] ) - @klass.count.should == 3 + @Product_klass.count.should == 3 @product_loader.failed_objects.size.should == 0 @product_loader.loaded_objects.size.should == 3 - @product_loader.loaded_count.should == @klass.count + @product_loader.loaded_count.should == @Product_klass.count - p = @klass.first + p = @Product_klass.first p.sku.should == "SIMPLE_001" p.price.should == 345.78 p.name.should == "Simple Product for AR Loader" p.description.should == "blah blah" p.cost_price.should == 320.00 p.option_types.should have_exactly(1).items p.option_types.should have_exactly(1).items p.count_on_hand.should == 12 - @klass.last.count_on_hand.should == 23 + @Product_klass.last.count_on_hand.should == 23 end it "should support default values for Spree Products loader" do @@ -147,20 +149,20 @@ end def test_default_values @product_loader.perform_load( SpecHelper::spree_fixture('SpreeProductsMandatoryOnly.xls'), :mandatory => ['sku', 'name', 'price'] ) - @klass.count.should == 3 + @Product_klass.count.should == 3 @product_loader.failed_objects.size.should == 0 @product_loader.loaded_objects.size.should == 3 - p = @klass.first + p = @Product_klass.first p.sku.should == "SPEC_SIMPLE_001" - @klass.all { |p| + @Product_klass.all { |p| p.sku.should.include "SPEC_" p.cost_price = 1.0 p.available_on.should == @expected_time p.meta_description.should == 'super duper meta desc.' p.meta_keywords.should == 'techno dubstep d&b' @@ -178,11 +180,11 @@ it "should load Products and create Variants from multiple column", :fail => true do test_variants_creation('SpreeProductsMultiColumn.xls') end def test_variants_creation( source ) - @klass.count.should == 0 + @Product_klass.count.should == 0 @Variant_klass.count.should == 0 @product_loader.perform_load( SpecHelper::spree_fixture(source), :mandatory => ['sku', 'name', 'price'] ) expected_multi_column_variants @@ -190,23 +192,23 @@ def expected_multi_column_variants # 3 MASTER products, 11 VARIANTS - @klass.count.should == 3 + @Product_klass.count.should == 3 @Variant_klass.count.should == 14 - p = @klass.first + p = @Product_klass.first p.sku.should == "DEMO_001" p.sku.should == "DEMO_001" p.price.should == 399.99 p.description.should == "blah blah" p.cost_price.should == 320.00 - @klass.all.select {|m| m.is_master.should == true } + @Product_klass.all.select {|m| m.is_master.should == true } # mime_type:jpeg mime_type:PDF mime_type:PNG p.variants.should have_exactly(3).items @@ -279,16 +281,16 @@ end def expected_multi_column_properties # 3 MASTER products, 11 VARIANTS - @klass.count.should == 3 + @Product_klass.count.should == 3 @Variant_klass.count.should == 14 - @klass.first.properties.should have_exactly(1).items + @Product_klass.first.properties.should have_exactly(1).items - p3 = @klass.all.last + p3 = @Product_klass.all.last p3.properties.should have_exactly(3).items p3.properties.should include @Property_klass.find_by_name('test_pp_002') @@ -302,11 +304,11 @@ ############## # Operation and results should be identical when loading multiple associations # if using either single column embedded syntax, or one column per entry. - it "should load Products and multiple Taxons from single column", :taxon => true do + it "should load Products and multiple Taxons from single column", :taxons => true do test_taxon_creation( 'SpreeProducts.xls' ) end it "should load Products and multiple Taxons from multiple columns", :taxons => true do test_taxon_creation( 'SpreeProductsMultiColumn.xls' ) @@ -327,36 +329,42 @@ def expected_multi_column_taxons #puts @Taxonomy_klass.all.collect( &:name).inspect #puts @Taxon_klass.all.collect( &:name).inspect - # Paintings alreadyexisted and had 1 child Taxon (Landscape) + # Paintings already existed and had 1 child Taxon (Landscape) # 2 nested Taxon (Paintings>Nature>Seascape) created under it so expect Taxonomy : # WaterColour # Oils # Paintings >Nature>Seascape + >Landscape # Drawings @Taxonomy_klass.count.should == 4 @Taxon_klass.count.should == 7 - @klass.first.taxons.should have_exactly(2).items - @klass.last.taxons.should have_exactly(2).items + @Product_klass.first.taxons.should have_exactly(2).items + @Product_klass.last.taxons.should have_exactly(2).items p2 = @Variant_klass.find_by_sku("DEMO_002").product # Paintings Oils Paintings>Nature>Seascape + # ["Nature", "Paintings", "Seascape"] + + #puts p2.taxons.collect(&:name).inspect p2.taxons.should have_exactly(4).items p2.taxons.collect(&:name).sort.should == ['Nature','Oils','Paintings','Seascape'] paint_parent = @Taxonomy_klass.find_by_name('Paintings') - + + + puts paint_parent.taxons.collect(&:name).sort.inspect + paint_parent.taxons.should have_exactly(4).items # 3 children + all Taxonomies have a root Taxon paint_parent.taxons.collect(&:name).sort.should == ['Landscape','Nature','Paintings','Seascape'] tn = @Taxon_klass.find_by_name('Nature') # child with children @@ -365,20 +373,17 @@ ts.should_not be_nil tn.should_not be_nil p2.taxons.collect( &:id ).should include(ts.id) p2.taxons.collect( &:id ).should include(tn.id) - - puts tn.inspect - puts ts.inspect + tn.parent.id.should == paint_parent.root.id ts.parent.id.should == tn.id tn.children.should have_exactly(1).items ts.children.should have_exactly(0).items - end # REPEAT THE WHOLE TEST SUITE VIA CSV @@ -390,10 +395,10 @@ expected_multi_column_taxons end - it "should load Products from multiple column csv as per .xls" do + it "should load Products from multiple column csv as per .xls", :blah => true do test_variants_creation('SpreeProductsMultiColumn.csv') expected_multi_column_properties expected_multi_column_taxons \ No newline at end of file