def setUp(self):
        self.logged_in_user = make_user()

        (self.el1, ) = generate_fake_links(self.logged_in_user, count=1)

        (self.el2, ) = generate_fake_links(self.logged_in_user,
                                           is_external=True,
                                           count=1)

        self.el1.categories.add('social')
        self.el1.save()

        self.el2.categories.add('mapping')
        self.el2.save()

        self.assertTrue(login_user(self, self.logged_in_user))
예제 #2
0
    def setUp(self):
        org = create_organisation("Heavy Users", num_teams=1, num_members=8)
        # user variable names here are ordered by usage
        self.top_user_1 = org.team_set.all()[0].user_set.all()[4]
        self.top_user_2 = org.team_set.all()[0].user_set.all()[2]
        self.top_user_3 = org.team_set.all()[0].user_set.all()[3]
        self.top_user_4 = org.team_set.all()[0].user_set.all()[1]
        self.top_user_5 = org.team_set.all()[0].user_set.all()[0]
        self.top_user_6 = org.team_set.all()[0].user_set.all()[6]

        self.owner_user = org.team_set.all()[0].user_set.all()[5]

        self.used_link, = generate_fake_links(self.owner_user, 2)

        register_link_usage_for_user(self.used_link, self.top_user_1, 13)
        register_link_usage_for_user(self.used_link, self.top_user_2, 12)
        register_link_usage_for_user(self.used_link, self.top_user_3, 10)
        register_link_usage_for_user(self.used_link, self.top_user_4, 9)
        register_link_usage_for_user(self.used_link, self.top_user_5, 7)
        register_link_usage_for_user(self.used_link, self.top_user_6, 5)
        register_link_usage_for_user(self.used_link, self.owner_user, 4)

        login_user(self, self.owner_user)

        # We need this for time mocking.
        self.now = now()
예제 #3
0
    def test_lighthouse_has_first_links(self):
        """
        Ensure that the migrations responsible for the creation of the
        Lighthouse links have captured the first two links
        """
        user = make_user()
        (l1, l2) = generate_fake_links(owner=user, count=2)

        all_links = Link.objects.all()
        self.assertEqual(len(all_links), 4)

        lighthouse = Link.objects.get(pk=1)
        self.assertEqual(lighthouse.name, 'Lighthouse')
        self.assertEqual(lighthouse.destination, '/')
        self.assertEqual(
            lighthouse.description,
            'Web application for finding useful tools, data and techniques')

        lighthouse_api = Link.objects.get(pk=2)
        self.assertEqual(lighthouse_api.name, 'Lighthouse API')
        self.assertEqual(lighthouse_api.destination, '/api/')

        exp = 'The API for this application.\n\n'
        exp += 'Documentation for using the API can '
        exp += 'be found at [/api/](/api/).'

        self.assertEqual(lighthouse_api.description, exp)
    def setUp(self):
        self.user = make_user()
        (self.el1, self.el2, self.el3, self.el4, self.el5, self.el6, self.el7,
         self.el8) = generate_fake_links(self.user, count=8)

        self.el1.categories.add('great')
        self.el2.categories.add('great')
        self.el3.categories.add('great')
        self.el4.categories.add('great')
        self.el5.categories.add('great')
        self.el6.categories.add('great')

        self.el7.is_external = True
        self.el7.save()

        self.el8.is_external = True
        self.el8.save()

        self.assertTrue(login_user(self, self.user))

        self.unfound_link_1 = Link.objects.create(
            name='Google Translate',
            destination='https://mail.google.com',
            description='Internet translation',
            owner=self.user,
        )

        self.unfound_link_2 = Link.objects.create(
            name='Google Mail',
            destination='https://translate.google.com',
            description='Internet email',
            owner=self.user,
        )

        rebuild_index.Command().handle(interactive=False, verbosity=0)
예제 #5
0
    def setUp(self):
        org = create_organisation(
            'Heavy Users',
            num_teams=1,
            num_members=8,
        )
        # user variable names here are ordered by usage
        self.top_user_1 = org.team_set.all()[0].user_set.all()[4]
        self.top_user_2 = org.team_set.all()[0].user_set.all()[2]
        self.top_user_3 = org.team_set.all()[0].user_set.all()[3]
        self.top_user_4 = org.team_set.all()[0].user_set.all()[1]
        self.top_user_5 = org.team_set.all()[0].user_set.all()[0]
        self.top_user_6 = org.team_set.all()[0].user_set.all()[6]

        self.owner_user = org.team_set.all()[0].user_set.all()[5]

        self.used_link, = generate_fake_links(self.owner_user, 2)

        register_link_usage_for_user(self.used_link, self.top_user_1, 13)
        register_link_usage_for_user(self.used_link, self.top_user_2, 12)
        register_link_usage_for_user(self.used_link, self.top_user_3, 10)
        register_link_usage_for_user(self.used_link, self.top_user_4, 9)
        register_link_usage_for_user(self.used_link, self.top_user_5, 7)
        register_link_usage_for_user(self.used_link, self.top_user_6, 5)
        register_link_usage_for_user(self.used_link, self.owner_user, 4)

        login_user(self, self.owner_user)

        # We need this for time mocking.
        self.now = now()
예제 #6
0
    def test_lighthouse_has_first_links(self):
        """
        Ensure that the migrations responsible for the creation of the
        Lighthouse links have captured the first two links
        """
        user = make_user()
        (l1, l2) = generate_fake_links(owner=user, count=2)

        all_links = Link.objects.all()
        self.assertEqual(len(all_links), 4)

        lighthouse = Link.objects.get(pk=1)
        self.assertEqual(lighthouse.name, 'Lighthouse')
        self.assertEqual(lighthouse.destination, '/')
        self.assertEqual(
            lighthouse.description,
            'Web application for finding useful tools, data and techniques'
        )

        lighthouse_api = Link.objects.get(pk=2)
        self.assertEqual(lighthouse_api.name, 'Lighthouse API')
        self.assertEqual(lighthouse_api.destination, '/api/')

        exp = 'The API for this application.\n\n'
        exp += 'Documentation for using the API can '
        exp += 'be found at [/api/](/api/).'

        self.assertEqual(
            lighthouse_api.description,
            exp
        )
    def setUp(self):
        self.logged_in_user = make_user()

        (self.el1, self.el2, self.el3,) = generate_fake_links(
            self.logged_in_user,
            count=3
        )

        self.el1.categories.add('mapping')
        self.el1.save()

        self.el2.categories.add('mapping')
        self.el2.save()

        self.el3.categories.add('social')
        self.el3.save()

        self.el3.name = 'Unique'
        self.el3.save()

        self.logged_in_user.favourites.add(self.el2)
        self.logged_in_user.favourites.add(self.el3)

        self.assertTrue(login_user(self, self.logged_in_user))

        rebuild_index.Command().handle(interactive=False, verbosity=0)
    def setUp(self):
        self.logged_in_user = make_user()

        (
            self.el1,
            self.el2,
            self.el3,
        ) = generate_fake_links(self.logged_in_user, count=3)

        self.el1.categories.add('mapping')
        self.el1.save()

        self.el2.categories.add('mapping')
        self.el2.save()

        self.el3.categories.add('social')
        self.el3.save()

        self.el3.name = 'Unique'
        self.el3.save()

        self.logged_in_user.favourites.add(self.el2)
        self.logged_in_user.favourites.add(self.el3)

        self.assertTrue(login_user(self, self.logged_in_user))

        rebuild_index.Command().handle(interactive=False, verbosity=0)
예제 #9
0
    def setUp(self):
        self.logged_in_user = make_user()
        self.assertTrue(login_user(self, self.logged_in_user))

        self.el1, = generate_fake_links(
            self.logged_in_user,
            count=1,
            is_external=True
        )
    def setUp(self):
        self.logged_in_user = make_user()
        self.assertTrue(login_user(self, self.logged_in_user))

        self.el1, self.el2, = generate_fake_links(self.logged_in_user,
                                                  count=2,
                                                  is_external=True)

        self.logged_in_user.favourites.add(self.el1)
        self.logged_in_user.favourites.add(self.el2)
    def setUp(self):
        self.logged_in_user = make_user()

        el1, el2 = generate_fake_links(self.logged_in_user, count=2)

        self.existing_link_1 = el1

        self.existing_link_2 = el2

        self.assertTrue(login_user(self, self.logged_in_user))
예제 #12
0
    def test_normal_edit_page_has_destination_box(self):
        self.logged_in_user = make_user()
        self.app.get(reverse('login'))
        link, = generate_fake_links(owner=self.logged_in_user)

        self.assertTrue(login_user(self, self.logged_in_user))

        response = self.app.get(reverse('link-edit', kwargs={'pk': link.id}))

        dest_input = response.html.find('input', {'name': 'destination'})

        self.assertEqual(dest_input.attrs['type'], 'url')
예제 #13
0
    def setUp(self):
        self.logged_in_user = make_user()
        self.assertTrue(login_user(self, self.logged_in_user))

        self.el1, self.el2, = generate_fake_links(
            self.logged_in_user,
            count=2,
            is_external=True
        )

        self.logged_in_user.favourites.add(self.el1)
        self.logged_in_user.favourites.add(self.el2)
예제 #14
0
    def test_normal_edit_page_has_destination_box(self):
        self.logged_in_user = make_user()
        self.app.get(reverse('login'))
        link, = generate_fake_links(owner=self.logged_in_user)

        self.assertTrue(login_user(self, self.logged_in_user))

        response = self.app.get(reverse('link-edit', kwargs={'pk': link.id}))

        dest_input = response.html.find('input', {'name': 'destination'})

        self.assertEqual(dest_input.attrs['type'], 'url')
예제 #15
0
    def setUp(self):
        self.logged_in_user = make_user()

        (self.el1,) = generate_fake_links(
            self.logged_in_user,
            count=1
        )

        (self.el2,) = generate_fake_links(
            self.logged_in_user,
            is_external=True,
            count=1
        )

        self.el1.categories.add('social')
        self.el1.save()

        self.el2.categories.add('mapping')
        self.el2.save()

        self.assertTrue(login_user(self, self.logged_in_user))
예제 #16
0
    def setUp(self):
        self.logged_in_user = make_user()

        el1, el2 = generate_fake_links(
            self.logged_in_user,
            count=2
        )

        self.existing_link_1 = el1

        self.existing_link_2 = el2

        self.assertTrue(login_user(self, self.logged_in_user))
예제 #17
0
    def setUp(self):
        self.logged_in_user = make_user()

        (self.el1, self.el2, self.el3,
            self.el4, self.el5, self.el6) = generate_fake_links(
            self.logged_in_user,
            count=6
        )

        self.el7, = generate_fake_links(
            self.logged_in_user,
            start=7,
            count=1,
            is_external=True,
        )

        self.el1.categories.add('mapping')
        self.el1.categories.add('social')
        self.el1.save()

        self.el2.categories.add('mapping')
        self.el2.save()

        self.el3.categories.add('social')
        self.el3.save()

        self.el4.categories.add('geospatial')
        self.el4.save()

        self.el5.categories.add('imagery')
        self.el5.save()

        self.el6.categories.add('geospatial')
        self.el6.categories.add('mapping')
        self.el6.save()

        self.assertTrue(login_user(self, self.logged_in_user))

        rebuild_index.Command().handle(interactive=False, verbosity=0)
    def test_list_top_tools_ordered(self):
        #   Create and log in a user
        get_user_model().objects.create_user(userid='*****@*****.**')
        form = self.app.get(reverse('login')).form
        form['userid'] = 'user0001com'
        form.submit().follow()

        t = create_team(name='Two members top teams', num_members=2)

        user1 = t.user_set.all()[0]

        (self.el1, self.el2, self.el3, self.el4, self.el5, self.el6, self.el7,
         self.el8, self.el9, self.el10) = generate_fake_links(user1,
                                                              count=10,
                                                              is_external=True)

        for i in range(0, 8):
            self.el4.register_usage(user1, force_new=True)

        for i in range(0, 6):
            self.el8.register_usage(user1, force_new=True)

        for i in range(0, 5):
            self.el3.register_usage(user1, force_new=True)

        for i in range(0, 4):
            self.el1.register_usage(user1, force_new=True)

        for i in range(0, 2):
            self.el9.register_usage(user1, force_new=True)

        for i in range(0, 1):
            self.el10.register_usage(user1, force_new=True)

        response = self.app.get(reverse('team-detail', kwargs={"pk": t.pk}))

        tools_list = response.html.find(id="top_links_list")
        tools_list_items = tools_list.findChildren('a')

        self.assertEqual(len(tools_list_items), 5)
        self.assertIn(self.el4.name, tools_list_items[0].text)
        self.assertIn(self.el8.name, tools_list_items[1].text)
        self.assertIn(self.el3.name, tools_list_items[2].text)
        self.assertIn(self.el1.name, tools_list_items[3].text)
        self.assertIn(self.el9.name, tools_list_items[4].text)
        self.assertNotIn(self.el10.name, tools_list.text)
        self.assertNotIn(self.el2.name, tools_list.text)
        self.assertNotIn(self.el5.name, tools_list.text)
        self.assertNotIn(self.el6.name, tools_list.text)
        self.assertNotIn(self.el7.name, tools_list.text)
예제 #19
0
    def setUp(self):
        self.logged_in_user = make_user()

        self.el1, self.el2, self.el3 = generate_fake_links(self.logged_in_user, count=3, is_external=True)

        self.el4, self.el5 = generate_fake_links(self.logged_in_user, start=4, count=2)

        # Note: the generator expects to send out a tuple, so allow that.
        (self.el6,) = generate_fake_links(self.logged_in_user, start=6, count=1, is_external=True)

        (self.el7,) = generate_fake_links(self.logged_in_user, start=7, count=1)

        self.el1.categories.add("mapping")
        self.el1.categories.add("social")
        self.el1.save()

        self.el2.categories.add("mapping")
        self.el2.save()

        self.el3.categories.add("social")
        self.el3.save()

        self.el4.categories.add("geospatial")
        self.el4.save()

        self.el5.categories.add("imagery")
        self.el5.save()

        self.el6.categories.add("geospatial")
        self.el6.categories.add("mapping")
        self.el6.save()

        self.el7.categories.add("social")
        self.el7.categories.add("mapping")
        self.el7.save()

        self.assertTrue(login_user(self, self.logged_in_user))
예제 #20
0
    def setUp(self):
        self.logged_in_user = make_user()

        (self.el1, self.el2, self.el3, self.el4, self.el5,
         self.el6) = generate_fake_links(self.logged_in_user, count=6)

        self.el7, = generate_fake_links(
            self.logged_in_user,
            start=7,
            count=1,
            is_external=True,
        )

        self.el1.categories.add('mapping')
        self.el1.categories.add('social')
        self.el1.save()

        self.el2.categories.add('mapping')
        self.el2.save()

        self.el3.categories.add('social')
        self.el3.save()

        self.el4.categories.add('geospatial')
        self.el4.save()

        self.el5.categories.add('imagery')
        self.el5.save()

        self.el6.categories.add('geospatial')
        self.el6.categories.add('mapping')
        self.el6.save()

        self.assertTrue(login_user(self, self.logged_in_user))

        rebuild_index.Command().handle(interactive=False, verbosity=0)
    def setUp(self):
        self.user = make_user()
        (self.el1, self.el2, self.el3,
            self.el4, self.el5, self.el6,
            self.el7, self.el8) = generate_fake_links(
            self.user,
            count=8
        )

        self.el1.categories.add('great')
        self.el2.categories.add('great')
        self.el3.categories.add('great')
        self.el4.categories.add('great')
        self.el5.categories.add('great')
        self.el6.categories.add('great')

        self.el7.is_external = True
        self.el7.save()

        self.el8.is_external = True
        self.el8.save()

        self.assertTrue(login_user(self, self.user))

        self.unfound_link_1 = Link.objects.create(
            name='Google Translate',
            destination='https://mail.google.com',
            description='Internet translation',
            owner=self.user,
        )

        self.unfound_link_2 = Link.objects.create(
            name='Google Mail',
            destination='https://translate.google.com',
            description='Internet email',
            owner=self.user,
        )

        rebuild_index.Command().handle(interactive=False, verbosity=0)
예제 #22
0
파일: common.py 프로젝트: dstl/lighthouse
def generate_fake_links(owner, start=1, count=1, is_external=False):
    return common.generate_fake_links(owner, start, count, is_external)
    def test_two_pages(self):
        el3, el4, el5, el6 = generate_fake_links(self.logged_in_user,
                                                 start=3,
                                                 count=4)

        response = self.app.get(reverse('link-list'))

        tools_list_result_header = response.html.find(id="tools-header")

        self.assertEquals(tools_list_result_header.text, 'Showing page 1 of 2')

        self.assertEquals(
            len(response.html.findAll('li', {'class': 'link-list-item'})), 5)

        self.assertIsNotNone(response.html.find('ol', {'class': 'pagination'}))

        self.assertIn(
            el6.name,
            response.html.findAll('li', {'class': 'link-list-item'})[0].text,
        )

        self.assertIn(
            el5.name,
            response.html.findAll('li', {'class': 'link-list-item'})[1].text,
        )

        self.assertIn(
            el4.name,
            response.html.findAll('li', {'class': 'link-list-item'})[2].text,
        )

        self.assertIn(
            el3.name,
            response.html.findAll('li', {'class': 'link-list-item'})[3].text,
        )

        self.assertIn(
            self.existing_link_2.name,
            response.html.findAll('li', {'class': 'link-list-item'})[4].text,
        )

        response = response.click(linkid="page-link-next")

        tools_list_result_header = response.html.find(id="tools-header")

        self.assertEquals(
            len(response.html.findAll('li', {'class': 'link-list-item'})), 3)

        self.assertIsNotNone(response.html.find('ol', {'class': 'pagination'}))

        self.assertIn(
            self.existing_link_1.name,
            response.html.findAll('li', {'class': 'link-list-item'})[0].text,
        )

        self.assertIn(
            "Lighthouse",
            response.html.findAll('li', {'class': 'link-list-item'})[1].text,
        )

        self.assertEquals(tools_list_result_header.text, 'Showing page 2 of 2')
예제 #24
0
    def test_list_top_tools_ordered(self):
        #   Create and log in a user
        get_user_model().objects.create_user(userid='*****@*****.**')
        form = self.app.get(reverse('login')).form
        form['userid'] = '*****@*****.**'
        form.submit().follow()

        # Create an organistion with two teams and two members in each team.
        o = create_organisation(name='Two members two teams top orgs',
                                num_teams=2,
                                num_members=2)

        t1 = o.team_set.all()[0]
        t2 = o.team_set.all()[1]

        user1 = t1.user_set.all()[0]
        user2 = t2.user_set.all()[0]

        (self.el1, self.el2, self.el3, self.el4, self.el5, self.el6, self.el7,
         self.el8, self.el9, self.el10) = generate_fake_links(user1,
                                                              count=10,
                                                              is_external=True)

        # Register a user from each team as having used various tools to
        # increase the aggregate from values across teams.
        # 16 times for existing link 8
        for i in range(0, 6):
            self.el8.register_usage(user1, force_new=True)
        for i in range(0, 10):
            self.el8.register_usage(user2, force_new=True)

        # 13 times for existing link 4
        for i in range(0, 8):
            self.el4.register_usage(user1, force_new=True)
        for i in range(0, 5):
            self.el4.register_usage(user2, force_new=True)

        # 9 times for existing link 1
        for i in range(0, 4):
            self.el1.register_usage(user1, force_new=True)
        for i in range(0, 5):
            self.el1.register_usage(user2, force_new=True)

        # 8 times for existing link 3
        for i in range(0, 5):
            self.el3.register_usage(user1, force_new=True)
        for i in range(0, 3):
            self.el3.register_usage(user2, force_new=True)

        # 4 times for existing link 9
        for i in range(0, 3):
            self.el9.register_usage(user1, force_new=True)
        for i in range(0, 1):
            self.el9.register_usage(user2, force_new=True)

        # 3 times for existing link 10
        for i in range(0, 2):
            self.el10.register_usage(user1, force_new=True)
        for i in range(0, 1):
            self.el10.register_usage(user2, force_new=True)

        response = self.app.get(
            reverse('organisation-detail', kwargs={"pk": o.pk}))

        tools_list = response.html.find(id="top_links_list")
        tools_list_items = tools_list.findChildren('a')

        self.assertEqual(len(tools_list_items), 5)
        self.assertIn(self.el8.name, tools_list_items[0].text)
        self.assertIn(self.el4.name, tools_list_items[1].text)
        self.assertIn(self.el1.name, tools_list_items[2].text)
        self.assertIn(self.el3.name, tools_list_items[3].text)
        self.assertIn(self.el9.name, tools_list_items[4].text)
        self.assertNotIn(self.el10.name, tools_list.text)
        self.assertNotIn(self.el2.name, tools_list.text)
        self.assertNotIn(self.el5.name, tools_list.text)
        self.assertNotIn(self.el6.name, tools_list.text)
        self.assertNotIn(self.el7.name, tools_list.text)
예제 #25
0
    def test_list_top_tools_ordered(self):
        #   Create and log in a user
        get_user_model().objects.create_user(userid='*****@*****.**')
        form = self.app.get(reverse('login')).form
        form['userid'] = '*****@*****.**'
        form.submit().follow()

        # Create an organistion with two teams and two members in each team.
        o = create_organisation(
            name='Two members two teams top orgs', num_teams=2, num_members=2
        )

        t1 = o.team_set.all()[0]
        t2 = o.team_set.all()[1]

        user1 = t1.user_set.all()[0]
        user2 = t2.user_set.all()[0]

        (self.el1, self.el2,
         self.el3, self.el4,
         self.el5, self.el6,
         self.el7, self.el8,
         self.el9, self.el10) = generate_fake_links(
            user1,
            count=10,
            is_external=True
        )

        # Register a user from each team as having used various tools to
        # increase the aggregate from values across teams.
        # 16 times for existing link 8
        for i in range(0, 6):
            self.el8.register_usage(user1, force_new=True)
        for i in range(0, 10):
            self.el8.register_usage(user2, force_new=True)

        # 13 times for existing link 4
        for i in range(0, 8):
            self.el4.register_usage(user1, force_new=True)
        for i in range(0, 5):
            self.el4.register_usage(user2, force_new=True)

        # 9 times for existing link 1
        for i in range(0, 4):
            self.el1.register_usage(user1, force_new=True)
        for i in range(0, 5):
            self.el1.register_usage(user2, force_new=True)

        # 8 times for existing link 3
        for i in range(0, 5):
            self.el3.register_usage(user1, force_new=True)
        for i in range(0, 3):
            self.el3.register_usage(user2, force_new=True)

        # 4 times for existing link 9
        for i in range(0, 3):
            self.el9.register_usage(user1, force_new=True)
        for i in range(0, 1):
            self.el9.register_usage(user2, force_new=True)

        # 3 times for existing link 10
        for i in range(0, 2):
            self.el10.register_usage(user1, force_new=True)
        for i in range(0, 1):
            self.el10.register_usage(user2, force_new=True)

        response = self.app.get(reverse(
            'organisation-detail',
            kwargs={"pk": o.pk}
        ))

        tools_list = response.html.find(id="top_links_list")
        tools_list_items = tools_list.findChildren('a')

        self.assertEqual(
            len(tools_list_items),
            5
        )
        self.assertIn(
            self.el8.name,
            tools_list_items[0].text
        )
        self.assertIn(
            self.el4.name,
            tools_list_items[1].text
        )
        self.assertIn(
            self.el1.name,
            tools_list_items[2].text
        )
        self.assertIn(
            self.el3.name,
            tools_list_items[3].text
        )
        self.assertIn(
            self.el9.name,
            tools_list_items[4].text
        )
        self.assertNotIn(
            self.el10.name,
            tools_list.text
        )
        self.assertNotIn(
            self.el2.name,
            tools_list.text
        )
        self.assertNotIn(
            self.el5.name,
            tools_list.text
        )
        self.assertNotIn(
            self.el6.name,
            tools_list.text
        )
        self.assertNotIn(
            self.el7.name,
            tools_list.text
        )
예제 #26
0
    def test_two_pages(self):
        el3, el4, el5, el6 = generate_fake_links(
            self.logged_in_user,
            start=3,
            count=4
        )

        response = self.app.get(reverse('link-list'))

        tools_list_result_header = response.html.find(id="tools-header")

        self.assertEquals(
            tools_list_result_header.text,
            'Showing page 1 of 2'
        )

        self.assertEquals(
            len(response.html.findAll('li', {'class': 'link-list-item'})),
            5
        )

        self.assertIsNotNone(response.html.find('ol', {'class': 'pagination'}))

        self.assertIn(
            el6.name,
            response.html.findAll(
                'li',
                {'class': 'link-list-item'}
            )[0].text,
        )

        self.assertIn(
            el5.name,
            response.html.findAll(
                'li',
                {'class': 'link-list-item'}
            )[1].text,
        )

        self.assertIn(
            el4.name,
            response.html.findAll(
                'li',
                {'class': 'link-list-item'}
            )[2].text,
        )

        self.assertIn(
            el3.name,
            response.html.findAll(
                'li',
                {'class': 'link-list-item'}
            )[3].text,
        )

        self.assertIn(
            self.existing_link_2.name,
            response.html.findAll(
                'li',
                {'class': 'link-list-item'}
            )[4].text,
        )

        response = response.click(linkid="page-link-next")

        tools_list_result_header = response.html.find(id="tools-header")

        self.assertEquals(
            len(response.html.findAll('li', {'class': 'link-list-item'})),
            3
        )

        self.assertIsNotNone(response.html.find('ol', {'class': 'pagination'}))

        self.assertIn(
            self.existing_link_1.name,
            response.html.findAll(
                'li',
                {'class': 'link-list-item'}
            )[0].text,
        )

        self.assertIn(
            "Lighthouse",
            response.html.findAll(
                'li',
                {'class': 'link-list-item'}
            )[1].text,
        )

        self.assertEquals(
            tools_list_result_header.text,
            'Showing page 2 of 2'
        )
예제 #27
0
    def test_list_top_tools_ordered(self):
        #   Create and log in a user
        get_user_model().objects.create_user(userid='*****@*****.**')
        form = self.app.get(reverse('login')).form
        form['userid'] = 'user0001com'
        form.submit().follow()

        t = create_team(
            name='Two members top teams', num_members=2
        )

        user1 = t.user_set.all()[0]

        (self.el1, self.el2,
         self.el3, self.el4,
         self.el5, self.el6,
         self.el7, self.el8,
         self.el9, self.el10) = generate_fake_links(
            user1,
            count=10,
            is_external=True
        )

        for i in range(0, 8):
            self.el4.register_usage(user1, force_new=True)

        for i in range(0, 6):
            self.el8.register_usage(user1, force_new=True)

        for i in range(0, 5):
            self.el3.register_usage(user1, force_new=True)

        for i in range(0, 4):
            self.el1.register_usage(user1, force_new=True)

        for i in range(0, 2):
            self.el9.register_usage(user1, force_new=True)

        for i in range(0, 1):
            self.el10.register_usage(user1, force_new=True)

        response = self.app.get(reverse('team-detail', kwargs={"pk": t.pk}))

        tools_list = response.html.find(id="top_links_list")
        tools_list_items = tools_list.findChildren('a')

        self.assertEqual(
            len(tools_list_items),
            5
        )
        self.assertIn(
            self.el4.name,
            tools_list_items[0].text
        )
        self.assertIn(
            self.el8.name,
            tools_list_items[1].text
        )
        self.assertIn(
            self.el3.name,
            tools_list_items[2].text
        )
        self.assertIn(
            self.el1.name,
            tools_list_items[3].text
        )
        self.assertIn(
            self.el9.name,
            tools_list_items[4].text
        )
        self.assertNotIn(
            self.el10.name,
            tools_list.text
        )
        self.assertNotIn(
            self.el2.name,
            tools_list.text
        )
        self.assertNotIn(
            self.el5.name,
            tools_list.text
        )
        self.assertNotIn(
            self.el6.name,
            tools_list.text
        )
        self.assertNotIn(
            self.el7.name,
            tools_list.text
        )
예제 #28
0
def generate_fake_links(owner, start=1, count=1, is_external=False):
    return common.generate_fake_links(owner, start, count, is_external)