~jcsackett/charmworld/bac-tag-constraints

« back to all changes in this revision

Viewing changes to charmworld/scripts/tests/test_remove_charm.py

  • Committer: Benji York
  • Date: 2013-11-18 20:38:47 UTC
  • mto: This revision was merged to the branch mainline in revision 465.
  • Revision ID: benji@benjiyork.com-20131118203847-2mfs1w7b8aqy64mr
checkpoint

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
        newer_charm_data['_id'] = construct_charm_id(newer_charm_data)
28
28
        self.db.charms.insert(newer_charm_data)
29
29
        self.charm = Charm(newer_charm_data)
30
 
        # As a convenience we will create a stderr stand-in here.
 
30
        # As a convienience we will create a stderr stand-in here.
31
31
        self.stderr = StringIO()
32
 
        # Be paranoid about the charms actually existing in the database.
33
 
        assert self.db.charms.find_one({'_id': older_charm._id})
 
32
        # Be paranoid about the charm actually existing in the database.
34
33
        assert self.db.charms.find_one({'_id': self.charm._id})
35
34
 
36
35
    def is_indexed(self, id_):
53
52
        # A non-zero exit status is set to indicate the error condition.
54
53
        self.assertGreater(exit_status, 0)
55
54
 
56
 
    def test_script_reports_unknown_charm_ids(self):
 
55
    def test_script_reports_unkown_charm_ids(self):
57
56
        # The script will generate an error message if the given charm ID does
58
57
        # not exist in the DB.
59
58
        exit_status = remove_charm.main(['', 'not a charm ID'], self.stderr)
60
 
        self.assertIn(
61
 
            "Unknown charm ID: 'not a charm ID'\n",
62
 
            self.stderr.getvalue())
63
 
        # The user is also given a hint as to how the ID is structured.
64
 
        self.assertIn(remove_charm.CHARM_ID_MESSAGE, self.stderr.getvalue())
 
59
        self.assertEqual(
 
60
            self.stderr.getvalue(),
 
61
            "Unknown charm ID: 'not a charm ID'\n")
65
62
        # A non-zero exit status is set to indicate the error condition.
66
63
        self.assertGreater(exit_status, 0)
67
64
 
76
73
        # The exit status signals success.
77
74
        self.assertEqual(exit_status, 0)
78
75
 
79
 
    def test_script_removes_charm_from_featured(self):
 
76
    def test_script_removes_charm_from_featuerd(self):
80
77
        # If a charm is featured, its featured status is revoked by the script.
81
78
        source = FeaturedSource.from_db(self.db)
82
79
        charm_data = self.charm._representation
102
99
        self.assertEqual(exit_status, 0)
103
100
 
104
101
    def test_old_revisions_of_the_charm_are_removed_too(self):
105
 
        # Requesting the removal of a charm results in all revisions of that
106
 
        # charm being removed.
 
102
        # Requesting the removal of a charm by giving a revisioned ID results
 
103
        # in all revisions being removed.
107
104
        charm_data = self.charm._representation
108
105
        # This can't be the best way to find all the revisions of a particular
109
106
        # charm.