New code for performing explicit joins with custom join conditions.
* added ExtendedManager.join_custom_field(), which uses the introspection magic from populate_relationships (now factored out) to infer the type of relationship between two models and construct the correct join.  join_custom_field() presents a much simpler, more Django-y interface for doing this sort of thing -- compare with add_join() above it.
* changed TKO custom fields code to use join_custom_field()
* added some cases to AFE rpc_interface_unittest to ensure populate_relationships() usage didn't break
* simplified _CustomQuery and got rid of _CustomSqlQ.  _CustomQuery can do the work itself and its cleaner this way.
* added add_where(), an alternative to extra(where=...) that fits more into Django's normal representation of WHERE clauses, and therefore supports & and | operators later

Signed-off-by: Steve Howard <[email protected]>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4155 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/frontend/afe/rpc_interface_unittest.py b/frontend/afe/rpc_interface_unittest.py
index c84dacf..7a8b7e2 100755
--- a/frontend/afe/rpc_interface_unittest.py
+++ b/frontend/afe/rpc_interface_unittest.py
@@ -60,6 +60,12 @@
 
         hosts = rpc_interface.get_hosts(hostname='host1')
         self._check_hostnames(hosts, ['host1'])
+        host = hosts[0]
+        self.assertEquals(sorted(host['labels']), ['label1', 'myplatform'])
+        self.assertEquals(host['platform'], 'myplatform')
+        self.assertEquals(host['atomic_group'], None)
+        self.assertEquals(host['acls'], ['my_acl'])
+        self.assertEquals(host['attributes'], {})
 
 
     def test_get_hosts_multiple_labels(self):