Exemple #1
0
    def test_get(self):

        option_transactions, shs = \
            ComplexOptionTransactionsWithSegmentsGenerator().generate()
        optionplan = option_transactions[0].option_plan

        res = self.client.get(
            reverse('available_option_segments',
                    kwargs={
                        'shareholder_id': shs[0].pk,
                        'optionsplan_id': optionplan.pk
                    }))

        self.assertEqual(res.status_code, 200)
        self.assertEqual(res.data, [u'1201-1665', u'1667-2000'])

        res = self.client.get(
            reverse('available_option_segments',
                    kwargs={
                        'shareholder_id': shs[1].pk,
                        'optionsplan_id': optionplan.pk
                    }))

        self.assertEqual(res.status_code, 200)
        self.assertEqual(res.data, [u'1000-1200', 1666])
Exemple #2
0
    def test_get_all_option_plan_segments(self):
        """
        retrieve list of all segments blocked by option plans
        """

        optiontransaction, shs = \
            ComplexOptionTransactionsWithSegmentsGenerator().generate()
        company = shs[0].company
        security = company.security_set.all()[0]

        self.assertEqual(company.get_all_option_plan_segments(),
                         [u'1000-2000'])

        OptionPlanGenerator().generate(company=company,
                                       security=security,
                                       number_segments=[2222, u'3000-4011'])

        self.assertEqual(company.get_all_option_plan_segments(),
                         [2222, u'3000-4011', u'1000-2000'])

        OptionPlanGenerator().generate(security=security,
                                       number_segments=[5555])

        self.assertEqual(company.get_all_option_plan_segments(),
                         [2222, u'3000-4011', u'1000-2000'])
Exemple #3
0
    def test_text_repr(self):

        optiontransaction, shs = \
            ComplexOptionTransactionsWithSegmentsGenerator().generate()
        company = shs[0].company
        company.name = u'Mühleggbahn AG'
        company.save()
        security = company.security_set.all()[0]
        force_text(security)  # must not raise exception
Exemple #4
0
    def test_table_actions(self):
        """
        test on start page that diverse things are shown properly
        e.g. #128
        """
        optiontransactions, shs = \
            ComplexOptionTransactionsWithSegmentsGenerator().generate()
        for x in range(0, 30):
            ShareholderGenerator().generate(company=shs[0].company)

        # add a subscription for the company
        self.add_subscription(shs[0].company)

        try:
            start = page.StartPage(self.selenium, self.live_server_url,
                                   shs[0].company.operator_set.first().user)
            # wait for list
            start.wait_until_visible((By.CSS_SELECTOR, '#shareholder_list'))

            # search
            start.is_properly_displayed()
            # FIXME doing strang things here
            start.enter_search_term(shs[0].user.last_name)
            time.sleep(1)
            start.click_search()
            start.refresh()
            time.sleep(2)
            start.enter_search_term(shs[0].user.last_name)
            time.sleep(1)
            start.click_search()
            time.sleep(1)
            self.assertEqual(start.has_shareholder_count(), 1)

            # paginate
            start.refresh()
            start.is_properly_displayed()
            self.assertEqual(start.has_shareholder_count(), 20)
            start.click_paginate_next()
            time.sleep(1)
            self.assertEqual(start.has_shareholder_count(), 12)

            # sort
            start.refresh()
            start.is_properly_displayed()
            start.sort_table_by_number()
            time.sleep(2)
            numbers = start.driver.find_elements_by_class_name('number')
            prev = None
            for number in numbers:
                if prev is None:
                    prev = number.text
                    continue
                self.assertTrue(prev < number.text)

        except Exception, e:
            self._handle_exception(e)
Exemple #5
0
    def test_current_options_segments(self):
        """
        which segments does a shareholder own via options
        """
        positions, shs = ComplexOptionTransactionsWithSegmentsGenerator()\
            .generate()

        self.assertEqual(
            shs[1].current_options_segments(positions[0].option_plan.security),
            [u'1000-1200', 1666])

        # test company shareholder
        self.assertEqual(
            shs[0].current_options_segments(positions[0].option_plan.security),
            [u'1201-1665', u'1667-2000'])
Exemple #6
0
    def test_owns_options_segments(self):
        """
        does the user own this options segment?
        """
        positions, shs = \
            ComplexOptionTransactionsWithSegmentsGenerator().generate()
        security = positions[0].option_plan.security
        segments = [1000, 1050, 1666, u'1103-1105']

        self.assertEqual(shs[1].owns_options_segments(segments, security),
                         (True, [], [u'1000-1200', 1666]))

        segments = [1000, 1050, 1666, 1667]

        self.assertEqual(shs[1].owns_options_segments(segments, security),
                         (False, [1667], [u'1000-1200', 1666]))
Exemple #7
0
    def test_options_with_segments_display(self):
        """
        test on start page that options with segments are show properly
        """
        optiontransactions, shs = \
            ComplexOptionTransactionsWithSegmentsGenerator().generate()

        try:
            start = page.StartPage(
                self.selenium, self.live_server_url,
                shs[0].company.operator_set.first().user)
            start.is_properly_displayed()
            for shareholder in shs[1:]:  # not for company shareholder
                row = start.get_row_by_shareholder(shareholder)
                self.assertEqual(row.find_element_by_class_name('number').text,
                                 shareholder.number)
                self.assertEqual(row.find_element_by_class_name('share').text,
                                 u'6 (200,0%)')

        except Exception, e:
            self._handle_exception(e)
Exemple #8
0
    def test_options_with_segments_display(self):
        """
        test on start page that options with segments are show properly
        """
        optiontransactions, shs = \
            ComplexOptionTransactionsWithSegmentsGenerator().generate()

        # add a subscription for the company
        self.add_subscription(shs[0].company)

        try:
            start = page.StartPage(self.selenium, self.live_server_url,
                                   shs[0].company.operator_set.first().user)
            # wait for list
            start.wait_until_visible((By.CSS_SELECTOR, '#shareholder_list'))
            start.is_properly_displayed()
            time.sleep(3)
            for shareholder in shs[1:]:  # not for company shareholder
                # FIXME
                row_xpath = (
                    # '//div[contains(@class, "options")]/div[./div/span="{}"
                    # and contains(@class, "tr")]'.format(
                    #    shareholder.get_full_name()))
                    '//div[contains(@class, "options")]/'
                    'div[contains(@class, "tr")]')
                row = self.selenium.find_elements_by_xpath(row_xpath)[0]
                self.assertEqual(
                    row.find_element_by_class_name('number').text,
                    shareholder.number)
                self.assertEqual(
                    row.find_element_by_class_name('share').text, u'6 (6.00%)')
                self.assertEqual(
                    row.find_element_by_class_name('full-name').text,
                    shareholder.get_full_name())

        except Exception, e:
            self._handle_exception(e)
Exemple #9
0
    def test_general_display(self):
        """
        test on start page that diverse things are shown properly
        e.g. #128
        """
        optiontransactions, shs = \
            ComplexOptionTransactionsWithSegmentsGenerator().generate()

        # add a subscription for the company
        self.add_subscription(shs[0].company)

        try:
            start = page.StartPage(self.selenium, self.live_server_url,
                                   shs[0].company.operator_set.first().user)
            # wait for list
            start.wait_until_visible((By.CSS_SELECTOR, '#shareholder_list'))
            start.is_properly_displayed()
            # self.assertEqual(start.get_total_share_count(), 3)
            self.assertEqual(start.get_company_share_count(), 100)
            self.assertEqual(start.get_total_share_count(),
                             start.get_company_share_count())

        except Exception, e:
            self._handle_exception(e)