<p>This pull request starts the process of replacing the users.yml fixtures with a user factory. Given the size of the change by the end of the process, I plan to submit several individual pull requests.</p>
<p>This PR creates the user and user_role factories, and refactors only the test/models/user_test.rb file.</p>
<p>Given the number of tests involved even just with this one file, I've broken it down further into separate commits, so the <code>git blame</code> etc can have specific comments. If this PR is still too big, or something is controversial, I'm happy to split this PR into the ~11 separate PRs - but then each PR is a bit trivial.</p>
<p>Future work will involve refactoring other places where the user fixtures are used.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/openstreetmap/openstreetmap-website/pull/1423'>https://github.com/openstreetmap/openstreetmap-website/pull/1423</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Create a simple user factory, and convert some basic tests.</li>
  <li>Add with_home_location trait for user factories.</li>
  <li>Add a user_role factory</li>
  <li>Add moderator_user and administrator_user factories.</li>
  <li>Add status traits to user factory.</li>
  <li>Convert class method tests to use User factory.</li>
  <li>User factory for uniqueness tests</li>
  <li>Convert test_friend_with to use factories, and use alice/bob/charlie for easier understanding.</li>
  <li>Refactor the friend_users test, and remove the tests which duplicate the (renamed) test_friends_with above.</li>
  <li>Use factory for user language tests</li>
  <li>Convert the test_users_nearby to user factories.</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/1423/files#diff-0">app/models/user_role.rb</a>
    (1)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/1423/files#diff-1">test/factories/user.rb</a>
    (44)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/1423/files#diff-2">test/factories/user_role.rb</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/1423/files#diff-3">test/models/user_test.rb</a>
    (171)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/openstreetmap/openstreetmap-website/pull/1423.patch'>https://github.com/openstreetmap/openstreetmap-website/pull/1423.patch</a></li>
  <li><a href='https://github.com/openstreetmap/openstreetmap-website/pull/1423.diff'>https://github.com/openstreetmap/openstreetmap-website/pull/1423.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/pull/1423">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABWnLSI6NWpP4iIm5dKIGISsoDIQeavbks5rYfUXgaJpZM4L1PeS">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABWnLc572llB5-hKgsPwkFnSz8GajRKRks5rYfUXgaJpZM4L1PeS.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/openstreetmap/openstreetmap-website/pull/1423"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/openstreetmap/openstreetmap-website","title":"openstreetmap/openstreetmap-website","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/openstreetmap/openstreetmap-website"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"Initial user_factory refactoring (#1423)"}],"action":{"name":"View Pull Request","url":"https://github.com/openstreetmap/openstreetmap-website/pull/1423"}}}</script>