<html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:12pt"><div><br><span>The methods of read/write/update/delete of records in the tables are written using SQLalchemy only and no direct sql is used.</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: arial,helvetica,sans-serif; background-color: transparent; font-style: normal;"><br><span></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: arial,helvetica,sans-serif; background-color: transparent; font-style: normal;"><span>I have implemented the things on the lines of trusts only.  Similar to trusts, I am also having RESTful APIs and unit tests for them are succesfully written. </span><span><span>In test_backend_sql.py, it is seen that no unit tests are defined for trusts. </span>So, it's confusing for me to implement the unit test for my backend sql code.</span></div><div style="color: rgb(0,
 0, 0); font-size: 16px; font-family: arial,helvetica,sans-serif; background-color: transparent; font-style: normal;"><br><span></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: arial,helvetica,sans-serif; background-color: transparent; font-style: normal;"><span>I know I am confusing the things and I apologise for that, but I am asking because of that confusion only!<br></span></div><div><br></div>  <div style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"> <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <div dir="ltr"> <hr size="1">  <font face="Arial" size="2"> <b><span style="font-weight:bold;">From:</span></b> Adam Young <ayoung@redhat.com><br> <b><span style="font-weight: bold;">To:</span></b> openstack-dev@lists.openstack.org <br> <b><span style="font-weight: bold;">Sent:</span></b> Thursday, 11 July 2013 4:28 AM<br> <b><span style="font-weight:
 bold;">Subject:</span></b> Re: [openstack-dev] [Keystone] How to write unit tests for db
        methods?<br> </font> </div> <div class="y_msg_container"><br><div id="yiv2318796423">
  

    
  
  <div>
    <div class="yiv2318796423moz-cite-prefix">On 07/10/2013 06:56 AM, Akshat Kakkar
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div style="color:#000;background-color:#fff;font-family:arial, helvetica, sans-serif;font-size:12pt;">I have added 2 tables to
        keystone.</div>
    </blockquote>
    <br>
    This should be done in a migration, and should be tested using the
    test_db_update.py file.<br>
    <br>
    <blockquote type="cite">
      <div style="color:#000;background-color:#fff;font-family:arial, helvetica, sans-serif;font-size:12pt;"> I have methods which do
        the read/write/update/delete of records in these tables. </div>
    </blockquote>
    PLease explain.  We are not doing direct sql, but rather using
    SQLalchemy.<br>
    <br>
    <br>
    <blockquote type="cite">
      <div style="color:#000;background-color:#fff;font-family:arial, helvetica, sans-serif;font-size:12pt;">I want to write unit test
        for all this. These methods of mine inherit from
        keystone.common.sql and hence any call that these methods will
        make will go to the db returned by keystone.common.sql when
        creating a session. For writing a unit test this db should be a
        test db and not the production db. So, how can I have a session
        of test db? or is there altogether a different way of writing
        the unit test.<br>
      </div>
    </blockquote>
    See test_backend_sql.py<br>
    <blockquote type="cite">
      <div style="color:#000;background-color:#fff;font-family:arial, helvetica, sans-serif;font-size:12pt;"><br>
        <div><br>
        </div>
        <div style="font-family:arial, helvetica, sans-serif;font-size:12pt;">
          <div style="font-family:times new roman, new york, times, serif;font-size:12pt;">
            <div dir="ltr">
              <hr size="1"> <font face="Arial" size="2"> <b><span style="font-weight:bold;">From:</span></b> Dolph
                Mathews <a rel="nofollow" class="yiv2318796423moz-txt-link-rfc2396E" ymailto="mailto:dolph.mathews@gmail.com" target="_blank" href="mailto:dolph.mathews@gmail.com"><dolph.mathews@gmail.com></a><br>
                <b><span style="font-weight:bold;">To:</span></b>
                Akshat Kakkar <a rel="nofollow" class="yiv2318796423moz-txt-link-rfc2396E" ymailto="mailto:the_akshat@yahoo.co.in" target="_blank" href="mailto:the_akshat@yahoo.co.in"><the_akshat@yahoo.co.in></a>; OpenStack
                Development Mailing List
                <a rel="nofollow" class="yiv2318796423moz-txt-link-rfc2396E" ymailto="mailto:openstack-dev@lists.openstack.org" target="_blank" href="mailto:openstack-dev@lists.openstack.org"><openstack-dev@lists.openstack.org></a> <br>
                <b><span style="font-weight:bold;">Sent:</span></b>
                Tuesday, 9 July 2013 7:39 PM<br>
                <b><span style="font-weight:bold;">Subject:</span></b>
                Re: [openstack-dev] [Keystone] How to write unit tests
                for db methods?<br>
              </font> </div>
            <div class="yiv2318796423y_msg_container"><br>
              <div id="yiv2318796423">
                <div dir="ltr">I'm assuming you're referring to testing
                  backend drivers as opposed to database migrations
                  (tests/test_sql_upgrade.py).
                  <div><br>
                  </div>
                  <div style="">Backend agnostic tests land in
                    tests/test_backend.py. Backend-specific tests,
                    overrides, etc belong in tests/test_backend_sql.py,
                    tests/test_backend_kvs.py, etc.</div>
                  <div style=""><br>
                  </div>
                  <div style="">Generally, you can't assume that
                    keystone is backed by a database, however, as it's
                    entirely possible to deploy without one.</div>
                </div>
                <div class="yiv2318796423gmail_extra"><br>
                  <br>
                  <div class="yiv2318796423gmail_quote">
                    On Tue, Jul 9, 2013 at 10:55 AM, Akshat Kakkar <span dir="ltr"><<a rel="nofollow" ymailto="mailto:the_akshat@yahoo.co.in" target="_blank" href="mailto:the_akshat@yahoo.co.in">the_akshat@yahoo.co.in</a>></span>
                    wrote:<br>
                    <blockquote class="yiv2318796423gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
                      <div>
                        <div style="font-size:12pt;font-family:arial, helvetica, sans-serif;">
                          <div>How to write unit tests in keystone for
                            the methods which are directly calling the
                            backend db? I understand that for testing
                            purpose it should be a *fake db*, but how to
                            do that in keystone?<br>
                          </div>
                        </div>
                      </div>
                      <br>
                      _______________________________________________<br>
                      OpenStack-dev mailing list<br>
                      <a rel="nofollow" ymailto="mailto:OpenStack-dev@lists.openstack.org" target="_blank" href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
                      <a rel="nofollow" target="_blank" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
                      <br>
                    </blockquote>
                  </div>
                  <br>
                  <br clear="all">
                  <div><br>
                  </div>
                  -- <br>
                  <div><br>
                  </div>
                  -Dolph
                </div>
              </div>
              <br>
              <br>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="yiv2318796423mimeAttachmentHeader"></fieldset>
      <br>
      <pre>_______________________________________________
OpenStack-dev mailing list
<a rel="nofollow" class="yiv2318796423moz-txt-link-abbreviated" ymailto="mailto:OpenStack-dev@lists.openstack.org" target="_blank" href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a>
<a rel="nofollow" class="yiv2318796423moz-txt-link-freetext" target="_blank" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
</pre>
    </blockquote>
    <br>
  </div>

</div><br>_______________________________________________<br>OpenStack-dev mailing list<br><a ymailto="mailto:OpenStack-dev@lists.openstack.org" href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br><br><br></div> </div> </div>  </div></body></html>