Fixtures using csv

Hi there,

I got a Problem using comma-seperated-values as fixtures. It simply does not fixture anything, no error message at all. :frowning:

Here my code (... => RAILS_ROOT):

# the test in .../test/unit/uk/incode_test.rb require File.dirname(__FILE__) + '/../../test_helper'

class UK::IncodeTest < Test::Unit::TestCase   fixtures File.join( 'uk', 'uk_incodes' )

  def test_class_for     # Returns record for provided incode.code and caches set     time_before = Time.now     assert_nil UK::Incode.for('0000')     distance = Time.now - time_before

    time_before = Time.now     assert_instance_of UK::Incode, UK::Incode.for('PH50')

    # stupid test...     assert distance > Time.now - time_before   end

end

# the csv in .../test/fixtures/uk/uk_incodes.csv code, posttown, county AB10, ABERDEEN, Aberdeenshire AB11, ABERDEEN, Aberdeenshire AB12, ABERDEEN, Aberdeenshire AB13, MILLTIMBER, Aberdeenshire AB14, PETERCULTER, Aberdeenshire AB15, ABERDEEN, Aberdeenshire # *snip*

# the model in .../app/models/uk/incode.rb module UK   class Incode < ActiveRecord::Base     set_table_name 'uk_incodes'

    validates_presence_of :code     validates_presence_of :county

    @@postcodes = Hash.new

    # Returns record for provided incode.code and caches set     def self.for code       if @@postcodes.empty?         self.find( :all ).each do |postcode|           @@postcodes[ postcode.code.to_sym ] = postcode         end       end       p @@postcodes

      @@postcodes[ code.to_sym ]     end

  end end

Thanks for any advice Florian

Florian Aßmann wrote:

Hi there,

I got a Problem using comma-seperated-values as fixtures. It simply does not fixture anything, no error message at all. :frowning:

[snip]

class UK::IncodeTest < Test::Unit::TestCase   fixtures File.join( 'uk', 'uk_incodes' )

This fixtures call does not seem like it is correct. At least not from what I can gather from the API docs. Have you tried reading:

http://api.rubyonrails.com/classes/Fixtures.html

Hi,

I tried to reproduce your problem but it works perfectly in my environment. Maybe you should check that there is no uk_incodes.yml file in the same directory than the CSV fixtures file?

Simon

Florian Aßmann wrote:

Hi Simon

I tried to reproduce your problem but it works perfectly in my environment. Maybe you should check that there is no uk_incodes.yml file in the same directory than the CSV fixtures file?

No, there isn't. I moved uk/uk_incodes.csv to uk_incodes.csv and used the syntax 'fixtures :uk_incodes' (thanks for the hint Jacob) and it worked right out of the box. The last time I used a String as fixtures parameter because I put the fixture into a subdir it worked.

Maybe some update in Rails Fixtures or so... :frowning:

Thanks Florian

Florian Aßmann wrote:

Hi Simon   

I tried to reproduce your problem but it works perfectly in my environment. Maybe you should check that there is no uk_incodes.yml file in the same directory than the CSV fixtures file?      No, there isn't. I moved uk/uk_incodes.csv to uk_incodes.csv and used the syntax 'fixtures :uk_incodes' (thanks for the hint Jacob) and it worked right out of the box. The last time I used a String as fixtures parameter because I put the fixture into a subdir it worked.

Maybe some update in Rails Fixtures or so... :frowning:

Just for the record, what version of Rails are you using? My first test was with Rails 1.2.3. I have double checked with Rails Edge (revision 7071) and it's still working...

Simon

Hi Simon,

I'm using Version 1.2.3 too.

Regards Florian