~mvo/software-center/apptreeview-tweaks

« back to all changes in this revision

Viewing changes to test/test_recagent.py

  • Committer: Michael Vogt
  • Date: 2012-03-08 13:58:30 UTC
  • mfrom: (2782.1.40 trunk)
  • Revision ID: michael.vogt@ubuntu.com-20120308135830-e5wkjjn1h1kdozms
mergedĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
from gi.repository import GObject
4
4
import unittest
5
5
import os
 
6
import uuid
 
7
 
 
8
from mock import patch
6
9
 
7
10
from testutils import setup_test_env
8
11
setup_test_env()
9
12
 
10
13
from softwarecenter.backend.recagent import RecommenderAgent
11
14
 
12
 
from softwarecenter.testutils import make_recommender_profile_upload_data
 
15
from softwarecenter.testutils import (
 
16
    get_test_db
 
17
)
13
18
 
14
19
class TestRecommenderAgent(unittest.TestCase):
15
20
    """ tests the recommender agent """
27
32
        else:
28
33
            os.environ["SOFTWARE_CENTER_RECOMMENDER_HOST"] = self.orig_host
29
34
 
30
 
    def on_query_done(self, recagent, data):
 
35
    @patch('softwarecenter.backend.recagent.SpawnHelper'
 
36
           '.run_generic_piston_helper')
 
37
    def test_mocked_recagent_post_submit_profile(self, mock_spawn_helper_run):
 
38
        def _patched_on_submit_profile_data(*args, **kwargs):
 
39
            piston_submit_profile = {}
 
40
            recommender_agent.emit("submit-profile-finished", 
 
41
                                   piston_submit_profile, 
 
42
                                   uuid.uuid1())
 
43
        mock_spawn_helper_run.side_effect = _patched_on_submit_profile_data
 
44
        recommender_agent = RecommenderAgent()
 
45
        recommender_agent.connect("submit-profile-finished", self.on_query_done)
 
46
        recommender_agent.connect("error", self.on_query_error)
 
47
        db = get_test_db()
 
48
        recommender_agent.post_submit_profile(db)
 
49
        self.assertFalse(self.error)
 
50
        args, kwargs =  mock_spawn_helper_run.call_args
 
51
        self.assertNotEqual(kwargs['data'][0]['uuid'], None)
 
52
        self.assertNotEqual(kwargs['data'][0]['package_list'], [])
 
53
 
 
54
    def on_query_done(self, recagent, data, uuid=""):
31
55
        print "query done, data: '%s'" % data
32
56
        self.loop.quit()
33
57
        
44
68
        recommender_agent.query_server_status()
45
69
        self.loop.run()
46
70
        self.assertFalse(self.error)
47
 
        
48
 
    # FIXME: disabled for now as the server is not quite working
49
 
    def disabled_test_recagent_query_submit_profile(self):
 
71
      
 
72
    # FIXME: disabled for now as the server is not quite working  
 
73
    def disabled_test_recagent_post_submit_profile(self):
50
74
        # NOTE: This requires a working recommender host that is reachable
51
75
        recommender_agent = RecommenderAgent()
52
 
        recommender_agent.connect("submit-profile", self.on_query_done)
 
76
        recommender_agent.connect("submit-profile-finished", self.on_query_done)
53
77
        recommender_agent.connect("error", self.on_query_error)
54
 
        recommender_agent.query_submit_profile(data=make_recommender_profile_upload_data())
 
78
        db = get_test_db()
 
79
        recommender_agent.post_submit_profile(db)
55
80
        self.loop.run()
56
81
        self.assertFalse(self.error)
 
82
        #print mock_request._post
57
83
        
 
84
     # NOTE: this server call is currently not needed and not used
58
85
#    def disabled_test_recagent_query_submit_anon_profile(self):
59
86
#        # NOTE: This requires a working recommender host that is reachable
60
87
#        recommender_agent = RecommenderAgent()
67
94
#        self.loop.run()
68
95
#        self.assertFalse(self.error)
69
96
        
 
97
    # FIXME: disabled for now as the server is not quite working
70
98
    def disabled_test_recagent_query_profile(self):
71
99
        # NOTE: This requires a working recommender host that is reachable
72
100
        recommender_agent = RecommenderAgent()
116
144
    def test_recagent_query_error(self):
117
145
        # NOTE: This tests the error condition itself! it simply forces an error
118
146
        #       'cuz there definitely isn't a server here  :)
119
 
        os.environ["SOFTWARE_CENTER_RECOMMENDER_HOST"] = "https://orange.staging.ubuntu.com"
 
147
        os.environ["SOFTWARE_CENTER_RECOMMENDER_HOST"] = "https://test-no-server-here.staging.ubuntu.com"
120
148
        recommender_agent = RecommenderAgent()
121
149
        recommender_agent.connect("recommend-top", self.on_query_done)
122
150
        recommender_agent.connect("error", self.on_query_error)