~jcsackett/charmworld/bac-tag-constraints

« back to all changes in this revision

Viewing changes to charmworld/views/tests/test_charms.py

[r=sinzui][bug=1208477][author=abentley] Remove doctype attribute.

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
from charmworld.models import (
11
11
    Charm,
12
12
    CharmSource,
13
 
    FeaturedSource,
14
13
    QADataSource,
15
14
    getfs,
16
15
)
58
57
    'promulgated': True,
59
58
    'branch_deleted': False,
60
59
    'categories': [],
 
60
    'is_featured': False,
61
61
    'subordinate': False,
62
62
    'requires': {'database': {'interface': 'mongodb'}},
63
63
    'provides': {'website': {'interface': 'https'}},
430
430
        }
431
431
        response = distro_charm(request)
432
432
        expected_keys = set((
433
 
            'charm', 'is_featured', 'format_change', 'format_proof', 'name',
434
 
            'others', 'project', 'qadata', 'readme', 'readme_format',
435
 
            'icon_path'))
 
433
            'charm', 'format_change', 'format_proof', 'name', 'others',
 
434
            'project', 'qadata', 'readme', 'readme_format', 'icon_path'))
436
435
        self.assertEqual(expected_keys, set(response))
437
436
 
438
437
    def test_distro_charm_json(self):
447
446
            'series': 'precise',
448
447
        }
449
448
        response = distro_charm_json(request)
450
 
        self.maxDiff = None
451
449
        self.assertEqual(DISTRO_CHARM_DATA, response.json_body)
452
450
 
453
451
    def test_valid_others(self):
619
617
            'charm': charm['name'],
620
618
            'series': charm['series'],
621
619
        }
622
 
        response = featured_edit(request)
623
 
 
624
 
        self.assertIn('form', response)
625
 
        self.assertIn('<label', response['form'])
626
 
 
627
 
    def test_checking_checkbox_sets_featured_status(self):
628
 
        """Verify checking the checkbox causes the charm to be featured."""
 
620
        resp = featured_edit(request)
 
621
 
 
622
        self.assertIn('form', resp)
 
623
        self.assertIn('label', resp['form'])
 
624
 
 
625
    def test_form_saves_data(self):
 
626
        """Verify good data causes the view to store it."""
629
627
        charm = factory.get_charm_json(name='name1', promulgated=True)
630
628
        self.use_index_client()
631
629
        self.enable_routes()
643
641
            'charm': charm['name'],
644
642
            'series': charm['series'],
645
643
        }
646
 
        # Before processing the request, the charm is not featured.
647
 
        featured_source = FeaturedSource.from_db(self.db)
648
 
        self.assertFalse(featured_source.is_featured(charm, 'charm'))
649
 
        response = featured_edit(request)
650
 
        self.assertEqual(302, response.status_code)
651
 
        self.assertRegexpMatches(response.headers['Location'],
652
 
                                 'http://[^/]*/charms/precise/name1')
653
 
        for found in charm_source._get_all(charm['_id']):
654
 
            self.assertTrue(featured_source.is_featured(found, 'charm'))
655
644
 
656
 
    def test_unchecking_checkbox_clears_featured_status(self):
657
 
        """Verify unchecking the checkbox causes the charm to be unfeatured."""
658
 
        charm = factory.get_charm_json(name='name1', promulgated=True)
659
 
        self.use_index_client()
660
 
        self.enable_routes()
661
 
        charm_source = CharmSource.from_request(self)
662
 
        charm_source.save(charm)
663
 
        # Add the submit button to trigger the right path through the view.
664
 
        post_data = {
665
 
            '_charset_': 'UTF-8',
666
 
            '__formid__': 'deform',
667
 
            'submit': 'submit',
668
 
        }
669
 
        request = self.getRequest(post=post_data)
670
 
        request.matchdict = {
671
 
            'charm': charm['name'],
672
 
            'series': charm['series'],
673
 
        }
674
 
        # Before processing the request, the charm is featured.
675
 
        featured_source = FeaturedSource.from_db(self.db)
676
 
        featured_source.set_featured(charm, 'charm')
677
 
        self.assertTrue(featured_source.is_featured(charm, 'charm'))
 
645
        self.assertFalse(charm['is_featured'])
678
646
        response = featured_edit(request)
679
647
        self.assertEqual(302, response.status_code)
680
648
        self.assertRegexpMatches(response.headers['Location'],
681
649
                                 'http://[^/]*/charms/precise/name1')
682
650
        for found in charm_source._get_all(charm['_id']):
683
 
            self.assertFalse(featured_source.is_featured(found, 'charm'))
 
651
            self.assertTrue(found['is_featured'])
684
652
 
685
653
 
686
654
class TestFeaturedFormFunc(WebTestBase):