Skip to content

Commit 84e0a78

Browse files
chore: remove old py versions (#373)
* Un-pin dependencies jsonschema and pyrsistent * relax jsonschema, but constrain pyrsistent * jsonschema>=3.2.0,<=4.01 pyrsistent>=0.16.0,<=0.17.3 * fix dot typo * Update core.txt * remove old py version refs from .travis file * remove py2 lines * open up cryptography version for pypy3 * temporarily comment out v3.10 * upgrade pip * restrick cryptography lib version * make dist focal as global * add zero to py 3.10 version * update * update pypy3 version to the latest possible by Travis - pypy3.7-7.3.5 * remove less than for cryptography version * fix lib versions, requirements, setup Co-authored-by: Jake Brown <[email protected]>
1 parent d1de5b5 commit 84e0a78

File tree

7 files changed

+27
-175
lines changed

7 files changed

+27
-175
lines changed

.travis.yml

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
language: python
1+
dist: focal
2+
language: python
23
python:
3-
- "2.7"
4-
# - "3.4"
5-
- "3.5.5"
6-
- "3.6"
7-
# - "3.7" is handled in 'Test' job using xenial as Python 3.7 is not available for trusty.
8-
# - "3.8" is handled in 'Test' job using xenial as Python 3.8 is not available for trusty.
9-
# - "pypy"
10-
# - "pypy3"
4+
- "pypy3.7-7.3.5"
5+
- "3.7"
6+
- "3.8"
7+
- "3.9"
8+
- "3.10.0"
9+
before_install: "python -m pip install --upgrade pip"
1110
install: "pip install -r requirements/core.txt;pip install -r requirements/test.txt"
1211
script: "pytest --cov=optimizely"
1312
after_success:
@@ -35,10 +34,10 @@ jobs:
3534

3635
- stage: 'Linting'
3736
language: python
38-
python: "2.7"
37+
python: "3.9"
3938
# flake8 version should be same as the version in requirements/test.txt
4039
# to avoid lint errors on CI
41-
install: "pip install flake8==3.6.0"
40+
install: "pip install flake8>=4.1.0"
4241
script: "flake8"
4342
after_success: travis_terminate 0
4443

@@ -62,19 +61,17 @@ jobs:
6261
SDK_BRANCH=$TRAVIS_PULL_REQUEST_BRANCH
6362
FULLSTACK_TEST_REPO=ProdTesting
6463
- stage: 'Test'
65-
python: "pypy"
66-
before_install:
67-
- pip install "cryptography>=1.3.4,<=3.1.1" # installing in before_install doesn't re-install the latest version of the same package in the next stage.
64+
python: "pypy3.7-7.3.5"
65+
# before_install:
66+
# - pip install "cryptography>=1.3.4"
6867
- stage: 'Test'
69-
python: "pypy3"
70-
before_install:
71-
- pip install "cryptography>=1.3.4,<=3.1.1"
72-
- stage: 'Test'
73-
dist: xenial
7468
python: "3.7"
7569
- stage: 'Test'
76-
dist: xenial
7770
python: "3.8"
71+
- stage: 'Test'
72+
python: "3.9"
73+
- stage: 'Test'
74+
python: "3.10.0"
7875

7976
- stage: 'Source Clear'
8077
if: type = cron

requirements/core.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
jsonschema==3.2.0
2-
pyrsistent==0.16.0
1+
jsonschema>=3.2.0
2+
pyrsistent>=0.16.0
33
requests>=2.21
44
pyOpenSSL>=19.1.0
55
cryptography>=2.8.0

requirements/test.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
coverage
2-
flake8==3.6.0
3-
funcsigs==0.4
4-
mock==1.3.0
5-
pytest>=4.6.0
2+
flake8 >= 4.0.1
3+
funcsigs >= 0.4
4+
mock >= 4.0.0
5+
pytest >= 6.2.0
66
pytest-cov
77
python-coveralls

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
'Optimizely X Full Stack is A/B testing and feature management for product development teams. '
2828
'Experiment in any application. Make every feature on your roadmap an opportunity to learn. '
2929
'Learn more at https://www.optimizely.com/products/full-stack/ or see our documentation at '
30-
'https://docs.developers.optimizely.com/full-stack/docs.'
30+
'https://docs.developers.optimizely.com/full-stack/docs. '
3131
)
3232

3333
setup(

tests/helpers_tests/test_condition.py

Lines changed: 0 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
import json
1515
import mock
16-
from six import PY2
1716

1817
from optimizely.helpers import condition as condition_helper
1918

@@ -394,13 +393,6 @@ def test_exact_string__returns_null__when_no_user_provided_value(self):
394393

395394
def test_exact_int__returns_true__when_user_provided_value_is_equal_to_condition_value(self, ):
396395

397-
if PY2:
398-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
399-
exact_int_condition_list, {'lasers_count': long(9000)}, self.mock_client_logger,
400-
)
401-
402-
self.assertStrictTrue(evaluator.evaluate(0))
403-
404396
evaluator = condition_helper.CustomAttributeConditionEvaluator(
405397
exact_int_condition_list, {'lasers_count': 9000}, self.mock_client_logger
406398
)
@@ -415,13 +407,6 @@ def test_exact_int__returns_true__when_user_provided_value_is_equal_to_condition
415407

416408
def test_exact_float__returns_true__when_user_provided_value_is_equal_to_condition_value(self, ):
417409

418-
if PY2:
419-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
420-
exact_float_condition_list, {'lasers_count': long(9000)}, self.mock_client_logger,
421-
)
422-
423-
self.assertStrictTrue(evaluator.evaluate(0))
424-
425410
evaluator = condition_helper.CustomAttributeConditionEvaluator(
426411
exact_float_condition_list, {'lasers_count': 9000}, self.mock_client_logger
427412
)
@@ -599,13 +584,6 @@ def test_greater_than_int__returns_true__when_user_value_greater_than_condition_
599584

600585
self.assertStrictTrue(evaluator.evaluate(0))
601586

602-
if PY2:
603-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
604-
gt_int_condition_list, {'meters_travelled': long(49)}, self.mock_client_logger,
605-
)
606-
607-
self.assertStrictTrue(evaluator.evaluate(0))
608-
609587
def test_greater_than_float__returns_true__when_user_value_greater_than_condition_value(self, ):
610588

611589
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -620,13 +598,6 @@ def test_greater_than_float__returns_true__when_user_value_greater_than_conditio
620598

621599
self.assertStrictTrue(evaluator.evaluate(0))
622600

623-
if PY2:
624-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
625-
gt_float_condition_list, {'meters_travelled': long(49)}, self.mock_client_logger,
626-
)
627-
628-
self.assertStrictTrue(evaluator.evaluate(0))
629-
630601
def test_greater_than_int__returns_false__when_user_value_not_greater_than_condition_value(self, ):
631602

632603
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -641,13 +612,6 @@ def test_greater_than_int__returns_false__when_user_value_not_greater_than_condi
641612

642613
self.assertStrictFalse(evaluator.evaluate(0))
643614

644-
if PY2:
645-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
646-
gt_int_condition_list, {'meters_travelled': long(47)}, self.mock_client_logger,
647-
)
648-
649-
self.assertStrictFalse(evaluator.evaluate(0))
650-
651615
def test_greater_than_float__returns_false__when_user_value_not_greater_than_condition_value(self, ):
652616

653617
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -662,13 +626,6 @@ def test_greater_than_float__returns_false__when_user_value_not_greater_than_con
662626

663627
self.assertStrictFalse(evaluator.evaluate(0))
664628

665-
if PY2:
666-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
667-
gt_float_condition_list, {'meters_travelled': long(48)}, self.mock_client_logger,
668-
)
669-
670-
self.assertStrictFalse(evaluator.evaluate(0))
671-
672629
def test_greater_than_int__returns_null__when_user_value_is_not_a_number(self):
673630

674631
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -733,13 +690,6 @@ def test_greater_than_or_equal_int__returns_true__when_user_value_greater_than_o
733690

734691
self.assertStrictTrue(evaluator.evaluate(0))
735692

736-
if PY2:
737-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
738-
gt_int_condition_list, {'meters_travelled': long(49)}, self.mock_client_logger,
739-
)
740-
741-
self.assertStrictTrue(evaluator.evaluate(0))
742-
743693
def test_greater_than_or_equal_float__returns_true__when_user_value_greater_than_or_equal_condition_value(self):
744694

745695
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -760,13 +710,6 @@ def test_greater_than_or_equal_float__returns_true__when_user_value_greater_than
760710

761711
self.assertStrictTrue(evaluator.evaluate(0))
762712

763-
if PY2:
764-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
765-
ge_float_condition_list, {'meters_travelled': long(49)}, self.mock_client_logger,
766-
)
767-
768-
self.assertStrictTrue(evaluator.evaluate(0))
769-
770713
def test_greater_than_or_equal_int__returns_false__when_user_value_not_greater_than_or_equal_condition_value(
771714
self):
772715

@@ -782,13 +725,6 @@ def test_greater_than_or_equal_int__returns_false__when_user_value_not_greater_t
782725

783726
self.assertStrictFalse(evaluator.evaluate(0))
784727

785-
if PY2:
786-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
787-
ge_int_condition_list, {'meters_travelled': long(47)}, self.mock_client_logger,
788-
)
789-
790-
self.assertStrictFalse(evaluator.evaluate(0))
791-
792728
def test_greater_than_or_equal_float__returns_false__when_user_value_not_greater_than_or_equal_condition_value(
793729
self):
794730

@@ -804,13 +740,6 @@ def test_greater_than_or_equal_float__returns_false__when_user_value_not_greater
804740

805741
self.assertStrictFalse(evaluator.evaluate(0))
806742

807-
if PY2:
808-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
809-
ge_float_condition_list, {'meters_travelled': long(48)}, self.mock_client_logger,
810-
)
811-
812-
self.assertStrictFalse(evaluator.evaluate(0))
813-
814743
def test_greater_than_or_equal_int__returns_null__when_user_value_is_not_a_number(self):
815744

816745
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -869,13 +798,6 @@ def test_less_than_int__returns_true__when_user_value_less_than_condition_value(
869798

870799
self.assertStrictTrue(evaluator.evaluate(0))
871800

872-
if PY2:
873-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
874-
lt_int_condition_list, {'meters_travelled': long(47)}, self.mock_client_logger,
875-
)
876-
877-
self.assertStrictTrue(evaluator.evaluate(0))
878-
879801
def test_less_than_float__returns_true__when_user_value_less_than_condition_value(self, ):
880802

881803
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -890,13 +812,6 @@ def test_less_than_float__returns_true__when_user_value_less_than_condition_valu
890812

891813
self.assertStrictTrue(evaluator.evaluate(0))
892814

893-
if PY2:
894-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
895-
lt_float_condition_list, {'meters_travelled': long(48)}, self.mock_client_logger,
896-
)
897-
898-
self.assertStrictTrue(evaluator.evaluate(0))
899-
900815
def test_less_than_int__returns_false__when_user_value_not_less_than_condition_value(self, ):
901816

902817
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -911,13 +826,6 @@ def test_less_than_int__returns_false__when_user_value_not_less_than_condition_v
911826

912827
self.assertStrictFalse(evaluator.evaluate(0))
913828

914-
if PY2:
915-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
916-
lt_int_condition_list, {'meters_travelled': long(49)}, self.mock_client_logger,
917-
)
918-
919-
self.assertStrictFalse(evaluator.evaluate(0))
920-
921829
def test_less_than_float__returns_false__when_user_value_not_less_than_condition_value(self, ):
922830

923831
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -932,13 +840,6 @@ def test_less_than_float__returns_false__when_user_value_not_less_than_condition
932840

933841
self.assertStrictFalse(evaluator.evaluate(0))
934842

935-
if PY2:
936-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
937-
lt_float_condition_list, {'meters_travelled': long(49)}, self.mock_client_logger,
938-
)
939-
940-
self.assertStrictFalse(evaluator.evaluate(0))
941-
942843
def test_less_than_int__returns_null__when_user_value_is_not_a_number(self):
943844

944845
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -991,19 +892,6 @@ def test_less_than_or_equal_int__returns_true__when_user_value_less_than_or_equa
991892

992893
self.assertStrictTrue(evaluator.evaluate(0))
993894

994-
if PY2:
995-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
996-
le_int_condition_list, {'meters_travelled': long(47)}, self.mock_client_logger,
997-
)
998-
999-
self.assertStrictTrue(evaluator.evaluate(0))
1000-
1001-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
1002-
le_int_condition_list, {'meters_travelled': long(48)}, self.mock_client_logger,
1003-
)
1004-
1005-
self.assertStrictTrue(evaluator.evaluate(0))
1006-
1007895
def test_less_than_or_equal_float__returns_true__when_user_value_less_than_or_equal_condition_value(self):
1008896

1009897
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -1024,13 +912,6 @@ def test_less_than_or_equal_float__returns_true__when_user_value_less_than_or_eq
1024912

1025913
self.assertStrictTrue(evaluator.evaluate(0))
1026914

1027-
if PY2:
1028-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
1029-
le_float_condition_list, {'meters_travelled': long(48)}, self.mock_client_logger,
1030-
)
1031-
1032-
self.assertStrictTrue(evaluator.evaluate(0))
1033-
1034915
def test_less_than_or_equal_int__returns_false__when_user_value_not_less_than_or_equal_condition_value(self):
1035916

1036917
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -1045,13 +926,6 @@ def test_less_than_or_equal_int__returns_false__when_user_value_not_less_than_or
1045926

1046927
self.assertStrictFalse(evaluator.evaluate(0))
1047928

1048-
if PY2:
1049-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
1050-
le_int_condition_list, {'meters_travelled': long(49)}, self.mock_client_logger,
1051-
)
1052-
1053-
self.assertStrictFalse(evaluator.evaluate(0))
1054-
1055929
def test_less_than_or_equal_float__returns_false__when_user_value_not_less_than_or_equal_condition_value(self):
1056930

1057931
evaluator = condition_helper.CustomAttributeConditionEvaluator(
@@ -1066,13 +940,6 @@ def test_less_than_or_equal_float__returns_false__when_user_value_not_less_than_
1066940

1067941
self.assertStrictFalse(evaluator.evaluate(0))
1068942

1069-
if PY2:
1070-
evaluator = condition_helper.CustomAttributeConditionEvaluator(
1071-
le_float_condition_list, {'meters_travelled': long(49)}, self.mock_client_logger,
1072-
)
1073-
1074-
self.assertStrictFalse(evaluator.evaluate(0))
1075-
1076943
def test_less_than_or_equal_int__returns_null__when_user_value_is_not_a_number(self):
1077944

1078945
evaluator = condition_helper.CustomAttributeConditionEvaluator(

tests/helpers_tests/test_validator.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
import json
1515
import mock
1616

17-
from six import PY2
18-
1917
from optimizely import config_manager
2018
from optimizely import error_handler
2119
from optimizely import event_dispatcher
@@ -230,12 +228,6 @@ def test_is_attribute_valid(self):
230228

231229
mock_is_finite.assert_called_once_with(5.5)
232230

233-
if PY2:
234-
with mock.patch('optimizely.helpers.validator.is_finite_number', return_value=None) as mock_is_finite:
235-
self.assertIsNone(validator.is_attribute_valid('test_attribute', long(5)))
236-
237-
mock_is_finite.assert_called_once_with(long(5))
238-
239231
def test_is_finite_number(self):
240232
""" Test that it returns true if value is a number and not NAN, INF, -INF or greater than 2^53.
241233
Otherwise False.
@@ -257,9 +249,6 @@ def test_is_finite_number(self):
257249
self.assertFalse(validator.is_finite_number(-int(2 ** 53) - 1))
258250
self.assertFalse(validator.is_finite_number(float(2 ** 53) + 2.0))
259251
self.assertFalse(validator.is_finite_number(-float(2 ** 53) - 2.0))
260-
if PY2:
261-
self.assertFalse(validator.is_finite_number(long(2 ** 53) + 1))
262-
self.assertFalse(validator.is_finite_number(-long(2 ** 53) - 1))
263252

264253
# test valid numbers
265254
self.assertTrue(validator.is_finite_number(0))
@@ -269,8 +258,6 @@ def test_is_finite_number(self):
269258
self.assertTrue(validator.is_finite_number(float(2 ** 53) + 1.0))
270259
self.assertTrue(validator.is_finite_number(-float(2 ** 53) - 1.0))
271260
self.assertTrue(validator.is_finite_number(int(2 ** 53)))
272-
if PY2:
273-
self.assertTrue(validator.is_finite_number(long(2 ** 53)))
274261

275262

276263
class DatafileValidationTests(base.BaseTest):

0 commit comments

Comments
 (0)