Added tests for primitives
This commit is contained in:
		
							
								
								
									
										0
									
								
								tests/primitives/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								tests/primitives/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										98
									
								
								tests/primitives/test_number_range.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								tests/primitives/test_number_range.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,98 @@ | |||||||
|  | from pytest import raises | ||||||
|  | from sqlalchemy_utils.primitives import NumberRange, NumberRangeException | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class TestNumberRangeInit(object): | ||||||
|  |     def test_support_range_object(self): | ||||||
|  |         num_range = NumberRange(NumberRange(1, 3)) | ||||||
|  |         assert num_range.lower == 1 | ||||||
|  |         assert num_range.upper == 3 | ||||||
|  |  | ||||||
|  |     def test_supports_multiple_args(self): | ||||||
|  |         num_range = NumberRange(1, 3) | ||||||
|  |         assert num_range.lower == 1 | ||||||
|  |         assert num_range.upper == 3 | ||||||
|  |  | ||||||
|  |     def test_supports_strings(self): | ||||||
|  |         num_range = NumberRange('1-3') | ||||||
|  |         assert num_range.lower == 1 | ||||||
|  |         assert num_range.upper == 3 | ||||||
|  |  | ||||||
|  |     def test_supports_strings_with_spaces(self): | ||||||
|  |         num_range = NumberRange('1 - 3') | ||||||
|  |         assert num_range.lower == 1 | ||||||
|  |         assert num_range.upper == 3 | ||||||
|  |  | ||||||
|  |     def test_supports_strings_with_bounds(self): | ||||||
|  |         num_range = NumberRange('[1, 3]') | ||||||
|  |         assert num_range.lower == 1 | ||||||
|  |         assert num_range.upper == 3 | ||||||
|  |  | ||||||
|  |     def test_supports_exact_ranges_as_strings(self): | ||||||
|  |         num_range = NumberRange('3') | ||||||
|  |         assert num_range.lower == 3 | ||||||
|  |         assert num_range.upper == 3 | ||||||
|  |  | ||||||
|  |     def test_supports_integers(self): | ||||||
|  |         num_range = NumberRange(3) | ||||||
|  |         assert num_range.lower == 3 | ||||||
|  |         assert num_range.upper == 3 | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class TestComparisonOperators(object): | ||||||
|  |     def test_eq_operator(self): | ||||||
|  |         assert NumberRange(1, 3) == NumberRange(1, 3) | ||||||
|  |         assert not NumberRange(1, 3) == NumberRange(1, 4) | ||||||
|  |  | ||||||
|  |     def test_ne_operator(self): | ||||||
|  |         assert not NumberRange(1, 3) != NumberRange(1, 3) | ||||||
|  |         assert NumberRange(1, 3) != NumberRange(1, 4) | ||||||
|  |  | ||||||
|  |     def test_gt_operator(self): | ||||||
|  |         assert NumberRange(1, 3) > NumberRange(0, 2) | ||||||
|  |         assert not NumberRange(2, 3) > NumberRange(2, 3) | ||||||
|  |  | ||||||
|  |     def test_ge_operator(self): | ||||||
|  |         assert NumberRange(1, 3) >= NumberRange(0, 2) | ||||||
|  |         assert NumberRange(1, 3) >= NumberRange(1, 3) | ||||||
|  |  | ||||||
|  |     def test_lt_operator(self): | ||||||
|  |         assert NumberRange(0, 2) < NumberRange(1, 3) | ||||||
|  |         assert not NumberRange(2, 3) < NumberRange(2, 3) | ||||||
|  |  | ||||||
|  |     def test_le_operator(self): | ||||||
|  |         assert NumberRange(0, 2) <= NumberRange(1, 3) | ||||||
|  |         assert NumberRange(1, 3) >= NumberRange(1, 3) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def test_str_representation(): | ||||||
|  |     assert str(NumberRange(1, 3)) == '1 - 3' | ||||||
|  |     assert str(NumberRange(1, 1)) == '1' | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def test_raises_exception_for_badly_constructed_range(): | ||||||
|  |     with raises(NumberRangeException): | ||||||
|  |         NumberRange(3, 2) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def test_from_str_exception_handling(): | ||||||
|  |     with raises(NumberRangeException): | ||||||
|  |         NumberRange('1 - ') | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class TestArithmeticOperators(object): | ||||||
|  |     def test_add_operator(self): | ||||||
|  |         assert NumberRange(1, 2) + NumberRange(1, 2) == NumberRange(2, 4) | ||||||
|  |  | ||||||
|  |     def test_sub_operator(self): | ||||||
|  |         assert NumberRange(1, 3) - NumberRange(1, 2) == NumberRange(-1, 2) | ||||||
|  |  | ||||||
|  |     def test_isub_operator(self): | ||||||
|  |         range_ = NumberRange(1, 3) | ||||||
|  |         range_ -= NumberRange(1, 2) | ||||||
|  |         assert range_ == NumberRange(-1, 2) | ||||||
|  |  | ||||||
|  |     def test_iadd_operator(self): | ||||||
|  |         range_ = NumberRange(1, 2) | ||||||
|  |         range_ += NumberRange(1, 2) | ||||||
|  |         assert range_ == NumberRange(2, 4) | ||||||
		Reference in New Issue
	
	Block a user
	 Konsta Vesterinen
					Konsta Vesterinen