diff --git a/accloudtant/aws/prices/__init__.py b/accloudtant/aws/prices/__init__.py
index c038349..3b0dec6 100644
--- a/accloudtant/aws/prices/__init__.py
+++ b/accloudtant/aws/prices/__init__.py
@@ -12,8 +12,11 @@ from accloudtant.utils import fix_lazy_json
 
 class Prices(object):
     def __init__(self):
-        self.prices = process_ec2()
-        self.output = print_prices(self.prices)
+        with warnings.catch_warnings(record=True) as w:
+            self.prices = process_ec2()
+            self.output = print_prices(self.prices)
+            for warning in w:
+                self.output += "\n{}".format(warning.message)
 
     def __repr__(self):
         return self.output
diff --git a/bin/accloudtant b/bin/accloudtant
index 71ef806..ab13966 100755
--- a/bin/accloudtant
+++ b/bin/accloudtant
@@ -19,7 +19,4 @@ def report():
     raise NotImplementedError
 
 if __name__ == '__main__':
-    with warnings.catch_warnings(record=True) as w:
-        cli()
-        for warning in w:
-            print(warning.message)
+    cli()

Warnings on non supported pricelists vanished
When printing prices, there were a nice list of warnings about problems getting the data.
Since the addition of the two commands, this list vanished.
diff --git a/tests/aws/print_expected_with_warnings.txt b/tests/aws/print_expected_with_warnings.txt
new file mode 100644
index 0000000..4af3e90
--- /dev/null
+++ b/tests/aws/print_expected_with_warnings.txt
@@ -0,0 +1,6 @@
+EC2 (Hourly prices, no upfronts, no instance type features):
+Type          On Demand    1y No Upfront    1y Partial Upfront    1y All Upfront    3y Partial Upfront    3y All Upfront
+----------  -----------  ---------------  --------------------  ----------------  --------------------  ----------------
+c3.8xlarge        0.768            0.611                0.5121            0.5225                0.4143            0.3894
+g2.2xlarge        0.767            0.611                0.5121            0.5225                0.4143            0.3894
+WARN: Parser not implemented for Unknown
diff --git a/tests/aws/test_prices.py b/tests/aws/test_prices.py
index 1edd66d..f7f8b0f 100644
--- a/tests/aws/test_prices.py
+++ b/tests/aws/test_prices.py
@@ -1,3 +1,4 @@
+import warnings
 import pytest
 import accloudtant.aws.prices
 
@@ -29,12 +30,18 @@ def mock_requests_get():
 @pytest.fixture
 def mock_process_ec2():
     class MockProcessEC2(object):
-        def set_responses(self, responses=None):
+        def set_responses(self, responses=None, unknown=None):
             if responses is None:
                 responses = {}
+            if unknown is None:
+                unknown = []
             self.responses = responses
+            self.unknown = unknown
 
         def __call__(self):
+            for name in self.unknown:
+                warnings.warn("WARN: Parser not implemented for {}"
+                              .format(name))
             return self.responses
 
         def __init__(self, responses=None):
@@ -1383,3 +1390,296 @@ def test_prices(capsys, monkeypatch, mock_process_ec2):
     assert("{}\n".format(prices.output) == expected)
     assert(out == expected)
     assert(out2 == expected)
+
+
+def test_prices_with_warning(capsys, monkeypatch, mock_process_ec2):
+    result = {
+        'eip': {
+            'eu-ireland': {
+                'perRemapOver100': '0.10',
+                'perRemapFirst100': '0.00',
+                'oneEIP': '0.00',
+                'perNonAttachedPerHour': '0.005',
+                'perAdditionalEIPPerHour': '0.005',
+                },
+            'us-east': {
+                'perRemapOver100': '0.10',
+                'perRemapFirst100': '0.00',
+                'oneEIP': '0.00',
+                'perNonAttachedPerHour': '0.005',
+                'perAdditionalEIPPerHour': '0.005',
+                },
+            },
+        'cw': {
+            'us-east-1': {
+                'ec2Monitoring': '3.50',
+                'cwRequests': '0.01',
+                'cloudWatchLogs': '0.67',
+                'cwMetrics': '0.50',
+                'cwAlarms': '0.10',
+                },
+            'eu-west-1': {
+                'ec2Monitoring': '4.55',
+                'cwRequests': '0.013',
+                'cwMetrics': '0.65',
+                'cwAlarms': '0.0515',
+                },
+            },
+        'ebs': {
+            'eu-ireland': {
+                'ebsSnapsToS3': '0.138',
+                'Amazon EBS General Purpose (SSD) volumes': '0.095',
+                'Amazon EBS Provisioned IOPS (SSD) volumes': '0.055',
+                'Amazon EBS Magnetic volumes': '0.11',
+                },
+            'us-east': {
+                'ebsSnapsToS3': '0.125',
+                'Amazon EBS General Purpose (SSD) volumes': '0.095',
+                'Amazon EBS Provisioned IOPS (SSD) volumes': '0.05',
+                'Amazon EBS Magnetic volumes': '0.10',
+                },
+            },
+        'data_transfer': {
+            'eu-west-1': {
+                'regional': {'prices': {'USD': '0.01', }, },
+                'ELB': {'prices': {'USD': '0.01', }, },
+                'AZ': {'prices': {'USD': '0.00', }, },
+                'dataXferInEC2': {
+                    'anotherRegion': '0.00',
+                    'sameAZprivateIP': '0.00',
+                    'anotherService': '0.00',
+                    'Internet': '0.00',
+                    'crossAZ': '0.01',
+                    'sameAZpublicIP': '0.01',
+                    },
+                'dataXferOutEC2': {
+                    'Amazon CloudFront': '0.00',
+                    'crossRegion': '0.02',
+                    'crossAZOut': '0.01',
+                    'anotherServiceOut': '0.00',
+                    'sameAZpublicIPOut': '0.01',
+                    'sameAZprivateIPOut': '0.00',
+                    },
+                'dataXferOutInternet': {
+                    'next4PBout': 'contactus',
+                    'next40TBout': '0.085',
+                    'next100TBout': '0.070',
+                    'next350TBout': '0.050',
+                    'next05PBout': 'contactus',
+                    'greater5PBout': 'contactus',
+                    'firstGBout': '0.000',
+                    'upTo10TBout': '0.090',
+                    },
+                },
+            'us-east-1': {
+                'regional': {'prices': {'USD': '0.01', }, },
+                'ELB': {'prices': {'USD': '0.01', }, },
+                'AZ': {'prices': {'USD': '0.00', }, },
+                'dataXferInEC2': {
+                    'anotherRegion': '0.00',
+                    'sameAZprivateIP': '0.00',
+                    'anotherService': '0.00',
+                    'Internet': '0.00',
+                    'crossAZ': '0.01',
+                    'sameAZpublicIP': '0.01',
+                    },
+                'dataXferOutEC2': {
+                    'Amazon CloudFront': '0.00',
+                    'crossRegion': '0.02',
+                    'crossAZOut': '0.01',
+                    'anotherServiceOut': '0.00',
+                    'sameAZpublicIPOut': '0.01',
+                    'sameAZprivateIPOut': '0.00',
+                    },
+                'dataXferOutInternet': {
+                    'next4PBout': 'contactus',
+                    'next40TBout': '0.085',
+                    'next100TBout': '0.070',
+                    'next350TBout': '0.050',
+                    'next05PBout': 'contactus',
+                    'greater5PBout': 'contactus',
+                    'firstGBout': '0.000',
+                    'upTo10TBout': '0.090',
+                    },
+                },
+            },
+        'elb': {
+            'eu-ireland': {
+                'perELBHour': '0.0008',
+                'perGBProcessed': '0.028',
+                },
+            'us-east': {
+                'perELBHour': '0.0008',
+                'perGBProcessed': '0.025',
+                },
+            },
+        'linux': {
+            'us-east-1': {
+                'g2.2xlarge': {
+                    'storageGB': '60 SSD',
+                    'ri': {
+                        'yrTerm1': {
+                            'noUpfront': {
+                                'upfront': '0',
+                                'monthlyStar': '446.03',
+                                'effectiveHourly': '0.611',
+                                },
+                            'allUpfront': {
+                                'upfront': '2974',
+                                'monthlyStar': '133.59',
+                                'effectiveHourly': '0.5225',
+                                },
+                            'partialUpfront': {
+                                'upfront': '4486',
+                                'monthlyStar': '0',
+                                'effectiveHourly': '0.5121',
+                                },
+                            },
+                        'yrTerm3': {
+                            'allUpfront': {
+                                'upfront': '10234',
+                                'monthlyStar': '0',
+                                'effectiveHourly': '0.3894',
+                                },
+                            'partialUpfront': {
+                                'upfront': '7077',
+                                'monthlyStar': '105.85',
+                                'effectiveHourly': '0.4143',
+                                },
+                            },
+                        },
+                    'od': '0.767',
+                    'memoryGiB': '15',
+                    'vCPU': '8',
+                    },
+                'c3.8xlarge': {
+                    'storageGB': '60 SSD',
+                    'ri': {
+                        'yrTerm1': {
+                            'noUpfront': {
+                                'upfront': '0',
+                                'monthlyStar': '446.03',
+                                'effectiveHourly': '0.611',
+                                },
+                            'allUpfront': {
+                                'upfront': '2974',
+                                'monthlyStar': '133.59',
+                                'effectiveHourly': '0.5225',
+                                },
+                            'partialUpfront': {
+                                'upfront': '4486',
+                                'monthlyStar': '0',
+                                'effectiveHourly': '0.5121',
+                                },
+                            },
+                        'yrTerm3': {
+                            'allUpfront': {
+                                'upfront': '10234',
+                                'monthlyStar': '0',
+                                'effectiveHourly': '0.3894',
+                                },
+                            'partialUpfront': {
+                                'upfront': '7077',
+                                'monthlyStar': '105.85',
+                                'effectiveHourly': '0.4143',
+                                },
+                            },
+                        },
+                    'od': '0.768',
+                    'memoryGiB': '15',
+                    'vCPU': '8',
+                    },
+                },
+            'eu-west-1': {
+                'g2.2xlarge': {
+                    'storageGB': '60 SSD',
+                    'ri': {
+                        'yrTerm1': {
+                            'noUpfront': {
+                                'upfront': '0',
+                                'monthlyStar': '446.03',
+                                'effectiveHourly': '0.611',
+                                },
+                            'allUpfront': {
+                                'upfront': '2974',
+                                'monthlyStar': '133.59',
+                                'effectiveHourly': '0.5225',
+                                },
+                            'partialUpfront': {
+                                'upfront': '4486',
+                                'monthlyStar': '0',
+                                'effectiveHourly': '0.5121',
+                                },
+                            },
+                        'yrTerm3': {
+                            'allUpfront': {
+                                'upfront': '10234',
+                                'monthlyStar': '0',
+                                'effectiveHourly': '0.3894',
+                                },
+                            'partialUpfront': {
+                                'upfront': '7077',
+                                'monthlyStar': '105.85',
+                                'effectiveHourly': '0.4143',
+                                },
+                            },
+                        },
+                    'od': '0.787',
+                    'memoryGiB': '15',
+                    'vCPU': '8',
+                    },
+                'c3.8xlarge': {
+                    'storageGB': '60 SSD',
+                    'ri': {
+                        'yrTerm1': {
+                            'noUpfront': {
+                                'upfront': '0',
+                                'monthlyStar': '446.03',
+                                'effectiveHourly': '0.611',
+                                },
+                            'allUpfront': {
+                                'upfront': '2974',
+                                'monthlyStar': '133.59',
+                                'effectiveHourly': '0.5225',
+                                },
+                            'partialUpfront': {
+                                'upfront': '4486',
+                                'monthlyStar': '0',
+                                'effectiveHourly': '0.5121',
+                                },
+                            },
+                        'yrTerm3': {
+                            'allUpfront': {
+                                'upfront': '10234',
+                                'monthlyStar': '0',
+                                'effectiveHourly': '0.3894',
+                                },
+                            'partialUpfront': {
+                                'upfront': '7077',
+                                'monthlyStar': '105.85',
+                                'effectiveHourly': '0.4143',
+                                },
+                            },
+                        },
+                    'od': '0.767',
+                    'memoryGiB': '15',
+                    'vCPU': '8',
+                    },
+                },
+            },
+        }
+    expected = open('tests/aws/print_expected_with_warnings.txt', 'r').read()
+
+    monkeypatch.setattr(
+        'accloudtant.aws.prices.process_ec2',
+        mock_process_ec2
+        )
+    mock_process_ec2.set_responses(result, ['Unknown'])
+
+    prices = accloudtant.aws.prices.Prices()
+    print(prices)
+    out, err = capsys.readouterr()
+
+    assert(prices.prices == result)
+    assert("{}\n".format(prices.output) == expected)
+    assert(out == expected)

pip install -e .
parse_log_pytest
requirements.txt
pytest
apt-get update apt-get install -y gcc
3.9
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
-e git+https://github.com/ifosch/accloudtant.git@66343620af6679769c3f5a7c727ae5d3492dc5ac#egg=accloudtant
certifi==2025.1.31
charset-normalizer==3.4.1
exceptiongroup==1.2.2
idna==3.10
iniconfig==2.1.0
packaging==24.2
pluggy==1.5.0
pytest==8.3.5
requests==2.32.3
tabulate==0.9.0
tomli==2.2.1
urllib3==2.3.0

name: accloudtant
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - exceptiongroup==1.2.2
      - idna==3.10
      - iniconfig==2.1.0
      - packaging==24.2
      - pluggy==1.5.0
      - pytest==8.3.5
      - requests==2.32.3
      - tabulate==0.9.0
      - tomli==2.2.1
      - urllib3==2.3.0
prefix: /opt/conda/envs/accloudtant

tests/aws/test_prices.py::test_prices_with_warning
tests/aws/test_prices.py::test_model_ec2 tests/aws/test_prices.py::test_process_model tests/aws/test_prices.py::test_process_generic tests/aws/test_prices.py::test_process_on_demand tests/aws/test_prices.py::test_process_reserved tests/aws/test_prices.py::test_process_data_transfer tests/aws/test_prices.py::test_process_ebs tests/aws/test_prices.py::test_process_eip tests/aws/test_prices.py::test_process_cw tests/aws/test_prices.py::test_process_elb tests/aws/test_prices.py::test_print_prices tests/aws/test_prices.py::test_prices
accloudtant/aws/prices/__init__.py bin/accloudtant
accloudtant/aws/prices/__init__.py bin/accloudtant