<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal>Hi everyone,<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Ubuntu server 8.04.3 install<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Whenever I ran 'rake test', I would get 3 unit errors and 39
functional failures ie:<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>  1) Error:<o:p></o:p></p>

<p class=MsoNormal>test_create(NodeTest):<o:p></o:p></p>

<p class=MsoNormal>OSM::APIChangesetAlreadyClosedError: The changeset 1 was
closed at Tue Jan 12 18:46:10 UTC 2010<o:p></o:p></p>

<p class=MsoNormal>    lib/consistency_validations.rb:29:in
`check_create_consistency'<o:p></o:p></p>

<p class=MsoNormal>    app/models/node.rb:180:in
`create_with_history'<o:p></o:p></p>

<p class=MsoNormal>    /test/unit/node_test.rb:85:in
`test_create'<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>with the 2nd and 3rd errors always complaining about
changeset closed also, and functional test errors like:<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal> 36) Failure:<o:p></o:p></p>

<p class=MsoNormal>test_update_relation_tags_via_upload(RelationControllerTest)<o:p></o:p></p>

<p class=MsoNormal>   
[/test/functional/relation_controller_test.rb:835:in `with_update_diff'<o:p></o:p></p>

<p class=MsoNormal>    
/test/functional/../test_helper.rb:86:in `with_controller'<o:p></o:p></p>

<p class=MsoNormal>    
/test/functional/relation_controller_test.rb:825:in `with_update_diff'<o:p></o:p></p>

<p class=MsoNormal>    
/test/functional/relation_controller_test.rb:314:in
`test_update_relation_tags_via_upload'<o:p></o:p></p>

<p class=MsoNormal>    
/test/functional/relation_controller_test.rb:792:in `with_relation'<o:p></o:p></p>

<p class=MsoNormal>    
/test/functional/relation_controller_test.rb:307:in `test_update_relation_tags_via_upload']:<o:p></o:p></p>

<p class=MsoNormal>can't upload diff relation: The changeset 2 was closed at
Wed Jan 13 06:27:56 UTC 2010.<o:p></o:p></p>

<p class=MsoNormal>Expected response to be a <:success>, but was
<409> <o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Again, complaining about closed changesets.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Finally, after five (possibly more) OS, Ruby, Rails and Rails_port
reinstalls, decided to look at the code even though previous posts concerning
this error were always thought to be ruby/rails, or outdated svn rails_port
problems. http://www.mail-archive.com/dev@openstreetmap.org/msg07830.html<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Found that in /app/models/changeset.rb open changesets are determined
by, <o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>  def is_open?<o:p></o:p></p>

<p class=MsoNormal>    return ((closed_at > Time.now.getutc)
and (num_changes <= MAX_ELEMENTS))<o:p></o:p></p>

<p class=MsoNormal>  end<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Here the Ruby 'Time' function is called referencing UTC, but
in /tests/fixtures/changsets.yml the 'Open" changesets were polulated with:<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>  closed_at: <%= DateTime.now + Rational(1,24) %><o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Ruby 'Time' and "DateTime' are not interchangeable:
http://stackoverflow.com/questions/279769/convert-to-from-datetime-and-time-in-ruby<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>They are 2 defferent classes.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>I modified my local changesets.yml to use Time.now.utc only,
ie:<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Read about fixtures at
http://ar.rubyonrails.org/classes/Fixtures.html<o:p></o:p></p>

<p class=MsoNormal>normal_user_first_change:<o:p></o:p></p>

<p class=MsoNormal>  id: 1<o:p></o:p></p>

<p class=MsoNormal>  user_id: 1<o:p></o:p></p>

<p class=MsoNormal>  created_at: "2007-01-01 00:00:00"<o:p></o:p></p>

<p class=MsoNormal>  closed_at: <%= Time.now.utc + 86400 %><o:p></o:p></p>

<p class=MsoNormal>  min_lon: <%= 1 * SCALE %><o:p></o:p></p>

<p class=MsoNormal>  min_lat: <%= 1 * SCALE %><o:p></o:p></p>

<p class=MsoNormal>  max_lon: <%= 5 * SCALE %><o:p></o:p></p>

<p class=MsoNormal>  max_lat: <%= 5 * SCALE %><o:p></o:p></p>

<p class=MsoNormal>  num_changes: 11<o:p></o:p></p>

<p class=MsoNormal>  <o:p></o:p></p>

<p class=MsoNormal>public_user_first_change:<o:p></o:p></p>

<p class=MsoNormal>  id: 2<o:p></o:p></p>

<p class=MsoNormal>  user_id: 2<o:p></o:p></p>

<p class=MsoNormal>  created_at: <%= Time.now.utc %><o:p></o:p></p>

<p class=MsoNormal>  closed_at: <%= Time.now.utc + 86400 %><o:p></o:p></p>

<p class=MsoNormal>  num_changes: 0<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Where the 86400 is 24 hours in seconds, and all 3 errors and
39 failures disappeared, and 100% 'rake test's’ now pass!<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Haven't looked into why DateTime would work on some installs
and not others, (timezone, local date format??) but just fixing the
changesets.yml to be consistent with how the open changeset is being determined
seems to work like it should.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Would someone with svn write capability want to update
changesets.yml?  I can post the code as the file is not too long.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Bye,<o:p></o:p></p>

<p class=MsoNormal>Steve<o:p></o:p></p>

</div>

</body>

</html>