Hey Pat, thank you for the help! I'll give it a try and see how it
works out.

Best,
Aaron

On Mar 15, 9:53 pm, Pat Allan <[email protected]> wrote:
> Hmm, there isn't yet a nice neat way to control Sphinx *within*  
> tests... you can run the rake tasks normally before running tests, but  
> obviously that's not so much help when you need to test certain parts  
> of the code as data changes.
>
> So, the quick and dirty way, is to invoke the rake tasks within code.
>
>    require 'rake'
>    require 'rake/testtask'
>    require 'rake/rdoctask'
>    require 'tasks/rails'
>
>    # ...
>
>    Rake::Task['ts:in'].invoke
>
> I've no idea what environment it uses though, but hopefully it runs  
> within the current scope's environment.
>
> As for sorting, items will still be returned - unless they've been  
> created since your last full index, and you're not using delta  
> indexes. The order will not reflect any changes though, and the string-
> to-int algorithm is applied to each index separately (so whatever's  
> first in the delta index will appear next to whatever's first in the  
> core index, etc).
>
> Hope this helps until I can get a better solution sorted.
>
> --
> Pat
>
> On 11/03/2009, at 7:57 AM, agib wrote:
>
>
>
> > Hi Pat,
>
> > Thank you for your reply!
>
> > I'm sorry, I kind of lost track of what I was doing there... I think
> > the problem may have come out of my hacky attempt to get TS running
> > with my cucumber integration tests. Have you figured out any good ways
> > to do integration testing with TS? i.e. is there a way to call rake
> > ts:index from the test code?
>
> > For example, is there a good way to implement the "Given TS has been
> > indexed" step below in the 3rd example? I also included some examples
> > to illustrate my understanding of delta indexing -- are they correct?
> > ---------------------------
> > class Context < ActiveRecord::Base
> >  define_index do
> >    indexes :name, :sortable => true
> >    has state_status, created_at
> >    set_property :delta => true
> >  end
> > end
> > ---------------------------
> > Scenario: #1 searching for contexts (no indexing)
> >  Given the following contexts exist:
> >    | name |
> >    | context 1 |
> >    | context 2 |
> >    | context 3 |
> >  And TS has NOT been indexed # no-op
> >  When I go to '/contexts?search=context' # something like:
> > Context.search(params[:search], :order => params[:order_by])
> >  Then I should see 'context 1'
> >  And I should see 'context 2'
> >  And I should see 'context 3'
>
> > Scenario: #2 searching for contexts arranged by name (no indexing)
> >  Given the following contexts exist:
> >    | name |
> >    | context 1 |
> >    | context 2 |
> >    | context 3 |
> >  And TS has NOT been indexed # no-op
> >  When I go to '/contexts?search=context&order_by=name'
> >  Then I should see no contexts
>
> > Scenario: #3 searching for contexts arranged by created_at (no
> > indexing)
> >  Given the following contexts exist:
> >    | name |
> >    | context 1 |
> >    | context 2 |
> >    | context 3 |
> >  And TS has NOT been indexed # no-op
> >  When I go to '/contexts?search=context&order_by=created_at'
> >  Then I should see 'context 1'
> >  And I should see 'context 2'
> >  And I should see 'context 3'
>
> > Scenario: #4 searching for contexts arranged by name (after indexing)
> >  Given the following contexts exist:
> >    | name |
> >    | context 1 |
> >    | context 2 |
> >    | context 3 |
> >  And TS has been indexed
> >  When I go to '/contexts?search=context&order_by=name'
> >  Then I should see 'context 1'
> >  And I should see 'context 2'
> >  And I should see 'context 3'
>
> > In Scenario #2, nothing should show up, right? Could I create a  
> > string-
> > to-int style attribute to allow for this to work? (since sorted
> > integer attributes are stored in delta indexes, right?)
>
> > Sorry for all the questions!!! And thank you in advance for any help!
>
> > Best,
> > Aaron
>
> > P.S. How was Cambodia? I visited Siem Reap last year and loved it.
>
> > On Mar 10, 9:33 am, Pat Allan <[email protected]> wrote:
> >> Hi Aaron
>
> >> To be honest, I'm not quite sure where to start on this issue - but
> >> then, it is late (but it needs a response anyway, right?)
>
> >> Are you able to narrow down the commit where it stops working at all?
> >> I realise that's a bit fiddly (although if you have it as a live git
> >> repo, you can checkout specific commits, not just branches (something
> >> I've learnt recently - apologies if this is old news).
>
> >> --
> >> Pat
>
> >> On 04/03/2009, at 6:51 AM, agib wrote:
>
> >>> I'm probably confusing myself, but I'll try to explain...
>
> >>> I ran into this issue when trying to use sphinx with my cucumber
> >>> feature (tests). I've decided to enable TS for my cucumber tests by
> >>> specifying:
>
> >>> ThinkingSphinx.updates_enabled = true
> >>> ThinkingSphinx.deltas_enabled = true
>
> >>> in my features/steps/env.rb file.
>
> >>> I also have the following in my config/sphinx.yml:
>
> >>> development:
> >>>  port: 3312
>
> >>> test:
> >>>  port: 3313
>
> >>> So basically I run two indexers at once when I'm working
> >>> (RAILS_ENV=development rake ts:start && RAILS_ENV=test rake  
> >>> ts:start).
>
> >>> I find that when I use the HEAD of the master branch
> >>> (b9e4294028a541fc58f6a5829db70be30b85fa19 as of this message) I get
> >>> the array of nil problem:
>
> >>> class Context < AR::Base
> >>>  # ...
> >>>  define_index do
> >>>    indexes :name, :sortable => true
> >>>    indexes :desc
>
> >>>    has state_status, created_at
> >>>    set_property :delta => true
> >>>  end
> >>>  # ...
> >>> end
>
> >>>> Factory.create(:context, :name => 'context 1')
> >>>> Factory.create(:context, :name => 'context 2')
> >>>> Factory.create(:context, :name => 'context 3')
>
> >>> ...
>
> >>> using config file '/Users/agib/Sites/site/config/
> >>> test.sphinx.conf'...
> >>> indexing index 'context_delta'...
> >>> collected 1 docs, 0.0 MB
> >>> sorted 0.0 Mhits, 100.0% done
> >>> total 1 docs, 27 bytes
> >>> total 0.015 sec, 1793.07 bytes/sec, 66.41 docs/sec
> >>> rotating indices: succesfully sent SIGHUP to searchd (pid=3572).
> >>> Sphinx 0.9.8.1-release (r1533)
> >>> Copyright (c) 2001-2008, Andrew Aksyonoff
>
> >>> ...
>
> >>>> Context.search 'context'
>
> >>> => [nil, nil, nil]
>
> >>> I switched back to 3e5fc7370b93e543ffd6ca2e0f240bec47baf4b9 and no
> >>> longer have the problem... has anyone else had similar issues?
>
> >>> Thanks in advance for any help!
>
> >>> Best,
> >>> Aaron
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/thinking-sphinx?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to